public class Solution {
public List<List<Integer>> fourSum(int[] num, int target) {
List<List<Integer>> res = new ArrayList<>();
if (num == null || num.length < 4) {
return res;
}
Arrays.sort(num);
for (int i = 0; i < num.length - 3; i++) {
if (i > 0 && num[i] == num[i-1]) {
continue;
}
for (int j = i + 1; j < num.length - 2; j++) {
if (j > i+1 && num[j] == num[j-1]) {
continue;
}
int p = j + 1;
int q = num.length - 1;
while (p < q) {
int temp = num[i] + num[j] + num[p] + num[q];
if (temp == target) {
List<Integer> list = new ArrayList<>();
list.add(num[i]);
list.add(num[j]);
list.add(num[p]);
list.add(num[q]);
res.add(list);
p++;
q--;
while ( p < q && num[p] == num[p - 1]) {
p++;
}
while (p < q && num[q] == num[q + 1]) {
q--;
}
} else if (temp < target) {
p++;
} else {
q--;
}
}
}
}
return res;
}
}
4 sum
最新推荐文章于 2021-08-20 00:33:10 发布