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; }