面试冲刺算法系列-64

给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。

现将数组排序,从小到大,遍历排序后的数组,若出现nums[L]>0时,则直接碾弃后面的元素,如果在L>0的情况下,第二个元素和第一个元素重合,则跳过。设立两个指针,一个j指向L+1,一个R指向nums.length-1,若nums[L]+nums[j]+nums[R]等于0,则直接添加元素,然后左右指针分别往里靠拢,且跳过重复值,若sum<0,则左边小了,需要往右移,反之右边往左移,同时跳过重复值。

面试冲刺算法系列-64
面试冲刺算法系列-64