4Sum

来源:互联网 发布:linux 安装apache 编辑:程序博客网 时间:2024/05/20 16:33
    public ArrayList<ArrayList<Integer>> fourSum(int[] num, int target) {        // Start typing your Java solution below        // DO NOT write main() function        ArrayList<ArrayList<Integer>> result = new ArrayList<ArrayList<Integer>>();        Set<ArrayList<Integer>> set = new HashSet<ArrayList<Integer>>();        if(num.length < 4) return result;        Arrays.sort(num);        for(int i = 0; i < num.length - 3; i++) {            for(int j = i + 1; j < num.length - 2; j++) {                int start = j + 1;                int end = num.length - 1;                while(start < end) {                    int sum = num[i] + num[j] + num[start] + num[end];                    if(sum == target) {                        ArrayList<Integer> tmp = new ArrayList<Integer>(4);                        tmp.addAll(Arrays.asList(num[i], num[j], num[start++], num[end--]));                        set.add(tmp);                    }else if(sum > target) {                        end--;                    }else{                        start++;                    }                }            }        }        result.addAll(set);        return result;    }

原创粉丝点击