3sum

三层嵌套循环不够高效,在leetcode上最后几个testcase,执行超时,无法accept。重写之前,将该实现保存

public class Solution {
    public List<List<Integer>> threeSum(int[] nums) {
        Arrays.sort(nums);
        List<List<Integer>> resList=new LinkedList<>();
        List<String> duplicateList= new LinkedList<String>();
        int sum=0;
        for(int i=0;i<nums.length-2;i++){
            for(int j=i+1;j<nums.length-1;j++){
                for(int k=j+1;k<nums.length;k++){
                    sum=nums[i]+nums[j]+nums[k];
                    if(sum==0){
                        String arrayStr=""+nums[i]+nums[j]+nums[k];
                        //System.out.println(arrayStr);
                        if(!duplicateList.contains(arrayStr)){
                           // System.out.println("add here"+arrayStr);
                            duplicateList.add(arrayStr);
                            resList.add(Arrays.asList(nums[i],nums[j],nums[k]));
                        }
                    }
                }
            }
        }
        return resList;
    }
}

 

posted @ 2017-07-01 19:08  友哥  阅读(334)  评论(0编辑  收藏  举报