3sum

来源:互联网 发布:网络建设方案ppt 编辑:程序博客网 时间:2024/06/10 15:32
static ArrayList<ArrayList<Integer>> result = new ArrayList<>();public ArrayList<ArrayList<Integer>> threeSum(int[] num) {        if(num==null || num.length<3)            return result;        Arrays.sort(num);        int len = num.length;        for(int i=0;i<len-2;i++){            //if(num[i] == num[i+1]) continue;            findtwosum(num,i+1,len-1,num[i]);       }        return result;    }    public static void findtwosum(int num[],int start,int end,int target){        int s = start;        int e = end;        while(s<e){            if(num[s]+num[e] + target ==0){                ArrayList<Integer> list = new ArrayList<Integer>();                list.add(target);                list.add(num[s]);                list.add(num[e]);                if(!result.contains(list)){                 result.add(list);                 System.out.println(list);                }                                            s++;                e--;           }else if(num[s] + num[e] +target <0)                s++;            else                e--;        }    }

原创粉丝点击