代码:
class Solution {
public:
vector<vector<int>> fourSum(vector<int>& nums, int target) {
vector<vector<int>> ans;
int len=nums.size();
sort(nums.begin(),nums.end());
for(int i=0;i<len-3;i++)
{
if(i>=1 && nums[i]==nums[i-1]) continue;
for(int j=i+1;j<len-2;j++)
{
if(j>i+1 && nums[j]==nums[j-1]) continue;
int l=j+1,r=len-1;
while(l<r)
{
int sum=nums[i]+nums[j]+nums[l]+nums[r];
if(sum==target)
{
ans.push_back({
nums[i],nums[j],nums[l],nums[r]});
while(l<r && nums[l]==nums[l+1]) l++;
while(l<r && nums[r]==nums[r-1]) r--;
l++,r--;
}
else if(sum<target) l++;
else r--;
}
}
}
return ans;
}
};