2016/10/28 很久没更了 leetcode解题 3sum
15. 3Sum
Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.
Note: The solution set must not contain duplicate triplets.
For example, given array S = [-1, 0, 1, 2, -1, -4], A solution set is: [ [-1, 0, 1], [-1, -1, 2] ]
这道题是3sumcloset的简化版 给出一个数组s 包含n个数 找出三个数为零的所有例子 并且不能重复 用上一题的思路 其实就是target=0
这道题不像closet 这道题需要所有的组合 所以肯定不能像之前3ms的解法一次遍历如果直接找到返回节省时间 这道题应该是需要遍历所有不重复的组合
还是老规矩 首先判断数组是否为空 并且长度是否大于等于三 不符合直接返回空
仍然对数组进行排序 更好的找结果
接下来还是跟closet解法类似
附上第一次submit结果
我的天 0000的情况为什么我的判断代码没起作用if nums[i]==nums[i-1]应该是直接continue的 在html页面里调试不了 看不出来哪里有问题 无奈开eclipse设置断点看看
我靠 这里循环了两次 并不是我的continue没用 添加完后忘记对left和right做操作了
问题解决 在对left右移动和right左移动时也不要忘了判断left和right大小 以及是否重复