LeetCode
WangPeng朝圣之路
才华撑不起野心
展开
-
LeetCode 从排序数组中删除重复项
给定一个有序数组,删除重复内容,使每个元素只出现一次,并返回新的长度。不要为其他数组分配额外的空间,您必须通过在 o(1)额外的内存中修改输入数组来实现。例如:nums[]={5 5 5 6 7 7 7 7 9 9 9 9 9} 有4个不同数字 在数值不同时才做处理5 5 5 6 7 7 7 7 9 9 9 9 95 5 5 6 7 7 7 7 9 9 9 9 95 5 5 6 7 7 7 7 ...原创 2018-03-15 21:56:24 · 8897 阅读 · 3 评论 -
LeetCode 请找出这个只出现一次的元素。
给定一个整数数组,除了某个元素外其余元素均出现两次。请找出这个只出现一次的元素。思路:用异或的方式排查出只出现一次的那个元素。异或两个为1或者是 同号为假(0)异号为真(1)0∧0=0,0∧1=1,1∧1=01 = 00012 = 00103 = 00112 = 00101 = 0001所以 1^2^3^2^1 = 3 ( 0011) fun singleNumber(nums: IntArr...原创 2018-03-16 22:32:06 · 693 阅读 · 0 评论 -
LeetCode 检查数组中是否有重复数字
有两种方法方法一:和之前的删除数组中的重复项思路类似。先要对数组进行排序,排序之后再进行相邻的俩数比较,之前的还需要保存不同项,该题不用,直接for i;i<num-1;i++。 args.sort() for (i in args.indices) { if (i < args.size - 1) { if (args[i] == args[i + 1]) { ...原创 2018-03-17 17:58:29 · 1169 阅读 · 0 评论 -
LeetCode 两数之和等于目标数
给定一个整数数列,找出其中和为特定值的那两个数。你可以假设每个输入都只会有一种答案,同样的元素不能被重用。给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]思路是将数组中的元素用HaspMap保存,存储的形式有点不一样,由于最终需要的结果是下标。所以我们需要将数组中的元素作为key,元素...原创 2018-03-17 21:30:06 · 1253 阅读 · 0 评论 -
LeetCode 加一
解题思路,首先判断数字的最后一个数是否为9,依次遍历,并且用一个carry标记是否进位,0表示不进位1表示进位,用number表示当前遍历的下标,如果是为9就直接将该下标赋值为0,并且将carry赋值为1,继续遍历下一位,直到当前数字不为9就直接将标记carry置为0,并且break结束for循环。在for循环结束之后再判断carry是否为1,如果是1并且number下标为0,就说明格式类似:99...原创 2018-03-19 22:46:01 · 673 阅读 · 0 评论 -
LeetCode 将数组中的零移动到最后,保持原数组其它元素顺序不变
给定一个数组 nums, 编写一个函数将所有 0 移动到它的末尾,同时保持非零元素的相对顺序。例如, 定义 nums = [0, 1, 0, 3, 12],调用函数之后, nums 应为 [1, 3, 12, 0, 0]。用两个标记分别统计总共的元素个数和遍历到非零的元素个数,统计元素个数的下标每次都加一,如果非零则统计非零元素的下标加一,遍历时统计遍历到非零元素将该元素赋值给非统计零元素下标位置...原创 2018-03-19 23:13:00 · 3614 阅读 · 0 评论