思路
双指针:类似16. 最接近的三数之和,将数组排序后,只需要枚举第一个数,则会变为与第16题相似的解题思路
解题过程
枚举选取的第一个数,0<=i<len-3,然后就是第16题的解题思路
Code
class Solution {
public List<List<Integer>> fourSum(int[] nums, int target) {
Arrays.sort(nums);
int len=nums.length;
int m=0;
int n=0;
List<List<Integer>> list=new ArrayList<>();
for(int i=0;i<len-3;i++){
for(int j=2;j<len-1;j++){
m=i+1;
n=len-1;
while(m<j&&n>j){
long num=(long)nums[i]+nums[j]+nums[m]+nums[n];
if(num==target){
List<Integer> t=new ArrayList<>();
t.add(nums[i]);
t.add(nums[j]);
t.add(nums[m]);
t.add(nums[n]);
if(!list.contains(t))
list.add(t);
}
if(num<=target) m++;
else n--;
}
}
}
return list;
}
}
作者:菜卷
链接:https://leetcode.cn/problems/4sum/solutions/2928969/si-shu-zhi-he-by-ashi-jian-chong-dan-lia-rkvp/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。