15.leetcode题目讲解(Python):三数之和

题目:

题目

给定一个数列,求$a+b+c = 0$的问题可以转换为求:$a+b = -c$, 我们将输入的list排序后,给定nums[i], 我们需要寻找 nums[j]+nums[k] = – nums[i], 这里的 $j,k > i$。

题目要求不可包含重复的解,对于排序后的数组,如果num[i] = num[i+1],那么他们获得的nums[j]和nums[k]肯定是相同的(如果解存在的话),所以应该跳过这种情况。同理,如果num[j] = num[j+1], 那么也会找到相同的nums[k]。这种情况也应该跳过。

参考代码如下:

如果您有更好的解法,欢迎讨论。