数字
鯉鱼
妹妹你大胆地往前走呀
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
旋转数组的最小数字
题目描述:假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。请找出其中最小的元素。注意数组中可能存在重复的元素。样例:输入: [1,3,5]输出: 1输入: [2,2,2,0,1]输出: 0分析:当含有重复元素时,通过移动位置首先去除左右两边重复的元素;当最左侧元素小于最右侧元素时...原创 2019-05-19 10:44:14 · 201 阅读 · 0 评论 -
找到所有数组中消失的数字
题目描述:给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。样例:输入:[4,3,2,7,8,2,3,1]输出:[5,6]分析:数组长度为n,...原创 2019-05-21 16:28:09 · 846 阅读 · 0 评论 -
数组中重复的数据
题目描述:给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度), 其中有些元素出现两次而其他元素出现一次。找到所有出现两次的元素。你可以不用到任何额外空间并在O(n)时间复杂度内解决这个问题吗?样例:输入:[4,3,2,7,8,2 ,3,1]输出:[2,3]分析:这道题和上一题的解法一致,如果nums[i]!=i+1,则将nums[i]存放到其对应的下标处,如果该下标...原创 2019-05-21 17:17:38 · 1209 阅读 · 0 评论 -
和为s的数字
题目描述:输入一个数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,输出任意一对即可。你可以认为每组输入中都至少含有一组满足条件的输出。样例:输入:[1,2,3,4] , sum=7输出:[3,4]分析:首先想到的方法是确定一个数字,判断其余n-1个数字分别和该数字相加是否等于sum,这种方法的时间复杂度为O(n2)。优化方法:我们现在数组中选择...原创 2019-05-21 18:29:04 · 442 阅读 · 1 评论 -
和为s的连续正数序列
题目描述:输入一个正数s,打印出所有和为s的连续正数序列(至少含有两个数)。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以结果打印出3个连续序列1~5、4~6和7~8。样例:输入:15输出:[[1,2,3,4,5],[4,5,6],[7,8]]分析:初始化两个数small=1和big=2分别表示序列的最小...原创 2019-05-21 20:23:29 · 275 阅读 · 0 评论 -
和为k的子数组
题目描述:给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。样例:输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。说明 :数组的长度为 [1, 20,000]。数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [-1e7, 1e7]。分析:这道题和LeetCod...原创 2019-05-22 09:40:49 · 748 阅读 · 0 评论 -
乘积小于k的子数组
题目描述:给定一个正整数数组 nums。找出该数组内乘积小于 k 的连续的子数组的个数。样例:输入: nums = [10,5,2,6], k = 100输出: 8解释: 8个乘积小于100的子数组分别为: [10], [5], [2], [6], [10,5], [5,2], [2,6], [5,2,6]。需要注意的是 [10,5,2] 并不是乘积小于100的子数组。说明:0...原创 2019-05-22 09:50:22 · 659 阅读 · 0 评论 -
和可被 K 整除的子数组
题目描述:给定一个整数数组 A,返回其中元素之和可被 K 整除的(连续、非空)子数组的数目。样例:输入:A = [4,5,0,-2,-3,1], K = 5输出:7解释:有 7 个子数组满足其元素之和可被 K = 5 整除:[4, 5, 0, -2, -3, 1], [5], [5, 0], [5, 0, -2, -3], [0], [0, -2, -3], [-2, -3]分析:...原创 2019-05-22 10:41:06 · 1338 阅读 · 1 评论 -
n个骰子的点数
题目描述:将一个骰子投掷n次,获得的总点数为s,s的可能范围为n~6n。掷出某一点数,可能有多种掷法,例如投掷2次,掷出3点,共有[1,2],[2,1]两种掷法。请求出投掷n次,掷出n~6n点分别有多少种掷法。样例:输入:n=1输出:[1, 1, 1, 1, 1, 1]解释:投掷1次,可能出现的点数为1-6,共计6种。每种点数都只有1种掷法。所以输出[1, 1, 1, 1, 1, ...原创 2019-05-22 20:50:25 · 685 阅读 · 0 评论 -
扑克牌的顺子
题目描述:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,大小王可以看做任意数字。为了方便,大小王均以0来表示,并且假设这副牌中大小王均有两张。样例:输入:[0,8,9,11,12]输出:true分析:首先统计数字中0的个数,并将不为0的数字放到对应下标处,若该数字重复出现则直接返回false。然后遍历...原创 2019-05-22 21:16:14 · 284 阅读 · 0 评论 -
圆圈中最后剩下数字
题目描述:0, 1, …, n-1这n个数字(n>0)排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。样例:输入:n=5 , m=3输出:3分析:将这n个数字存入列表中,通过举例可以得出第一次删除的数字下标为(m-1)%n记为c,之后每一次删除的数字下标均为(c+m-1)%list.size()public int LastRema...原创 2019-05-22 21:36:51 · 564 阅读 · 0 评论 -
缺失数字
题目描述:给定一个包含 0, 1, 2, …, n 中 n 个数的序列,找出 0 … n 中没有出现在序列中的那个数。样例:输入: [9,6,4,2,3,5,7,0,1]输出: 8分析:n+1个数字的和(0-n)减去数组中数字的总和即为缺失的数字//执行用时 : 1 ms, 在Missing Number的Java提交中击败了99.79% 的用户//内存消耗 : 37.6 MB, ...原创 2019-05-21 16:00:12 · 260 阅读 · 0 评论 -
数组中数值和下标相等的元素
题目描述:假设一个单调递增的数组里的每个元素都是整数并且是唯一的。请编程实现一个函数找出数组中任意一个数值等于其下标的元素。例如,在数组[-3, -1, 1, 3, 5]中,数字3和它的下标相等。样例:输入:[-3, -1, 1, 3, 5]输出:3注意:如果不存在,则返回-1。分析:首先想到的方法是对数组从头遍历,当遍历到一个元素和其下标相等时直接返回,如果遍历结束仍没有找到则返回...原创 2019-05-21 10:34:51 · 957 阅读 · 0 评论 -
0到n-1中缺失的数字
题目描述:一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0到n-1之内。在范围0到n-1的n个数字中有且只有一个数字不在该数组中,请找出这个数字。样例:输入:[0,1,2,4]输出:3分析:长度为n-1的数组,数字范围在0到n-1,即n个数字存放到长度为n-1的数组中,那么肯定有一个元素不在数组中(当所有数字只出现一次的情况下)。因为数组是递增有序的所以使...原创 2019-05-21 09:49:57 · 1010 阅读 · 0 评论 -
搜索旋转排序数组
题目描述:假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] )。编写一个函数来判断给定的目标值是否存在于数组中。若存在返回 true,否则返回 false。样例:输入: nums = [2,5,6,0,0,1,2], target = 0输出: true输入: nums = [2,5,6,0...原创 2019-05-19 10:59:33 · 189 阅读 · 0 评论 -
数字序列中某一位的数字
题目描述:数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从0开始计数)是5,第13位是1,第19位是4,等等。请写一个函数求任意位对应的数字。样例:输入:13输出:1分析:0-9 10个一位数 占了前10位10-99 90个两位数 占了180位100-999 900个三位数 占了2700位以找序列的第1001位是什么为...原创 2019-05-19 12:07:01 · 481 阅读 · 0 评论 -
x的n次幂
题目描述:实现 pow(x, n) ,即计算 x 的 n 次幂函数。样例:输入: 2.00000, 10输出: 1024.00000说明:-100.0 < x < 100.0n 是 32 位有符号整数,其数值范围是 [-2147483648, 2147483647] 。分析:计算x 的 n 次幂:如果采用常规解法循环n次对想相乘,当x=0.000001,n=21474...原创 2019-05-15 08:31:40 · 2876 阅读 · 0 评论 -
调整数组顺序使奇数位于偶数前面
题目描述:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。样例:输入:[1,2,3,4,5]输出:[1,3,5,2,4]分析:如果没有规定奇数和奇数,偶数和偶数之间的相对位置不改变,可以定义两个指针,一个指向数组中的第一个元素,另一个指向数组中最后一个元素。在两个指针...原创 2019-05-15 16:31:21 · 174 阅读 · 0 评论 -
顺时针打印矩阵
题目描述:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。样例:输入:[[1, 2, 3, 4],[5, 6, 7, 8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]分析:该问题没有涉及到复杂的数据结构或者算法,但需要非常注意边界条件的判断。如果矩阵为空或者矩阵行数为0返回空。定义四个边界:上边界初始化为矩阵第...原创 2019-05-16 10:23:22 · 186 阅读 · 0 评论 -
数组中出现次数超过一半的数字
题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 假设数组非空,并且一定存在满足条件的数字。思考题:假设要求只能使用 O(n) 的时间和额外 O(1) 的空间,该怎么做呢?样例:输入:[1,2,1,1,3] 输出:1分析:数组中有一个数字出现的次数超过数组长度的一半,如果对这个数组进行排序,那么排序之后位于数组中间的数字一定就是出现次数超过数组长度一半的那个数字...原创 2019-05-17 12:13:53 · 225 阅读 · 0 评论 -
把数组排成最小的数
题目描述:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组[3, 32, 321],则打印出这3个数字能排成的最小数字321323。样例:输入:[3, 32, 321]输出:321323注意:输出数字的格式为字符串。分析:对数组重新进行排序,依据以下规则:若ab > ba 则 a > b,将a和b的位置交换若...原创 2019-05-20 09:00:55 · 216 阅读 · 0 评论 -
把数字翻译成字符串
题目描述:给定一个数字,我们按照如下规则把它翻译为字符串:0翻译成”a”,1翻译成”b”,……,11翻译成”l”,……,25翻译成”z”。一个数字可能有多个翻译。例如12258有5种不同的翻译,它们分别是”bccfi”、”bwfi”、”bczi”、”mcfi”和”mzi”。请编程实现一个函数用来计算一个数字有多少种不同的翻译方法。样例:输入:“12258”输出:5分析:首先考虑特殊情...原创 2019-05-20 11:49:32 · 299 阅读 · 0 评论 -
解码方法
题目描述:一条包含字母 A-Z 的消息通过以下方式进行了编码:‘A’ -> 1‘B’ -> 2…‘Z’ -> 26给定一个只包含数字的非空字符串,请计算解码方法的总数。样例:输入: “226”输出: 3解释: 它可以解码为 “BZ” (2 26), “VF” (22 6), 或者 “BBF” (2 2 6) 。输入: “026”输出: 0分析:这道题和...原创 2019-05-20 12:22:29 · 657 阅读 · 0 评论 -
数字在排序数组中出现的次数
题目描述:统计一个数字在排序数组中出现的次数。例如输入排序数组[1, 2, 3, 3, 3, 3, 4, 5]和数字3,由于3在这个数组中出现了4次,因此输出4。样例:输入:[1, 2, 3, 3, 3, 3, 4, 5] , 3输出:4分析:因为是在经过排序的数组中查找,所以首先想到用二分查找,找到该数字在数组中第一次出现的位置以及最后一次出现的位置,二者做差加1即为出现的次数。...原创 2019-05-20 22:18:24 · 290 阅读 · 0 评论 -
字符串转换整数
题目描述:请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,这...原创 2019-05-23 13:50:06 · 259 阅读 · 0 评论
分享