![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/95ce6340ba2ce7d3c1e9328f379aafd8.png)
双指针
class Solution {
public:
vector<vector<int>> fourSum(vector<int>& nums, int target) {
sort(nums.begin(),nums.end());
vector<vector<int>>ans;
for(int i=0;i<nums.size();i++){
if(i && nums[i]==nums[i-1])continue;
for(int j=i+1;j<nums.size();j++){
if(j>i+1 && nums[j]==nums[j-1])continue;
for(int k=j+1,u=nums.size()-1;k<u;k++){
if(k>j+1 && nums[k]==nums[k-1])continue;
while(u-1>k && nums[i]+nums[j]>=target-nums[k]-nums[u-1])u--;
if(nums[i]+nums[j]==target-nums[k]-nums[u]){
ans.push_back({nums[i],nums[j],nums[k],nums[u]});
}
}
}
}
return ans;
}
};