LeetCode 15---3Sum

来源:互联网 发布:淘宝联名信用卡哪个好 编辑:程序博客网 时间:2024/06/03 17:21

题目链接如下:
LeetCode 15—3Sum


其实现代码如下:

public class Problem15 {    public static void main(String[] args) {        // TODO Auto-generated method stub        int[] nums={0,0,0};        threeSum(nums);    }    public static List<List<Integer>> threeSum(int[] nums) {        List<List<Integer>> list =new ArrayList<List<Integer>>();        Arrays.sort(nums);        for(int i=0;i<=nums.length-3;i++){            if(nums[i]>0) break;            if(i>0 && nums[i]==nums[i-1]) continue;            int j=i+1;            int k=nums.length-1;                while(j<k){                if((j-1)>i && nums[j]==nums[j-1] ){                    j++;                    continue;                }                if(k+1<=nums.length-1 && nums[k]==nums[k+1]){                    k--;                    continue;                }                if(nums[i]+nums[j]+nums[k]>0){                    k--;                    }                else if(nums[i]+nums[j]+nums[k]==0){                    ArrayList<Integer> arr =new ArrayList<Integer>();                    arr.add(nums[i]);                    arr.add(nums[j]);                    arr.add(nums[k]);                    list.add(arr);                    j++;                    k--;                }                else{                    j++;                    }            }        }        return list;    }}
0 0