本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从0开始计数)是5,第13位是1,第19位是4,等等。请写一个函数求任意 ...
由于这道题目在牛客上没有,所以在此记录一下。 一.题目大意: 数字以 的格式序列化到一个字符序列中。在这个序列中,第 位 从 开始计数,即从第 位开始 是 ,第 位是 ,第 位是 ,等等。请写一个函数,求任意第n位对应的数字。 二.题解 剑指offer 上提供了两种思路。 方法 : 第一种思路是:从 开始枚举每个数字。每枚举一个数字的时候,求出该数字是几位 如 是 位数 是 位数 ,并把该数字的位 ...
2018-04-27 17:30 0 1295 推荐指数:
本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从0开始计数)是5,第13位是1,第19位是4,等等。请写一个函数求任意 ...
题目: 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3。 思路 ...
问题描述 在长度为n的数组中,所有的元素都是0到n-1的范围内。 数组中的某些数字是重复的,但不知道有几个重复的数字,也不知道重复了几次,请找出任意重复的数字。 例如,输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出为2或3。 解题思路 1、判断输入数组有无元素非法 ...
一、题目:旋转数组的最小数字 题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 这道题最直观的解法并不 ...
题目: 统计一个数字在排序数组中出现的次数。 思路: 1、顺序遍历 顺序扫描一遍数组,统计该数字出现的次数。 时间复杂度:O(n) 2、二分查找 假设我们需要找的数字是k,那么就需要找到数组中的第一个k和最后一个k出现的位置。 如何通过二分查找得到第一个k的位置呢? 取数组中间 ...
一、题目:数字在排序数组中出现的次数 题目:统计一个数字在排序数组中出现的次数。例如输入排序数组{1,2,3,3,3,3,4,5}和数字3,由于3在这个数组中出现了4次,因此输出4。 二、解题思路 2.1 直接运用二分查找 既然输入的数组是排序的,那么我们很自然地就能想到 ...
一、题目:将字符串转换为数字 题目:写一个函数StrToInt,实现把字符串转换成整数这个功能。当然,不能使用atoi或者其他类似的库函数。 二、代码实现 (1)考虑输入的字符串是否是NULL、空字符串 (2)考虑输入的字符串是否包含正负号或者是否是只包含正负号 ...
题目: 0,1,...n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字,求出这个圆圈里剩下的最后一个数字。 思路: 1、环形链表模拟圆圈 创建一个n个节点的环形链表,然后每次在这个链表中删除第m个节点; 可以用std::list来模拟环形链表,list本身不是环形 ...