2016/10/28 很久没更了 leetcode解题 3sum

15. 3Sum

Given an array S of n integers, are there elements abc 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大小 以及是否重复

原文地址:https://www.cnblogs.com/Mrjie/p/6008081.html