15. 3Sum

思路是先进行排序
然后固定左边元素(如果和之前元素重复需要跳过)
从剩下的元素中找到两个数使3个数和为0,找的时候采用从两头往中间找的方法
如果和小于零,那么左边游标前进
如果和大于零,那么右边游标后退
如果和等于零,那么左右同时往中间靠拢,并且跳过所有和当前值相等元素
左游标大于等于右游标时退出循环

class Solution {
    public List> threeSum(int[] nums) {
        List> zz = new ArrayList<>();
        Arrays.sort(nums);
        int len = nums.length;
        if(len<3)
            return zz;
        for(int i=0;i tmp = new ArrayList<>();
                    tmp.add(nums[i]);
                    tmp.add(nums[p]);
                    tmp.add(nums[q]);
                    zz.add(tmp);
                    p++;
                    q--;
                    while(p

你可能感兴趣的:(15. 3Sum)