思路和上上题一致,复杂度O(n3)O(n^3)O(n3)
class Solution {
public:
vector<vector<int>> fourSum(vector<int>& nums, int target) {
sort(nums.begin(),nums.end());
vector<vector<int>> v;
int n=nums.size();
for(int i=0;i<n;i++)
{
if(i&&nums[i]==nums[i-1]) continue;
for(int j=i+1;j<n;j++)
{
if(j>i+1&&nums[j]==nums[j-1]) continue;
int l=j+1,r=n-1,sum=target-nums[i]-nums[j];
while(l<r)
{
if(nums[l]+nums[r]==sum)
{
v.push_back({nums[i],nums[j],nums[l],nums[r]});
l++,r--;
while(l<r&&nums[l]==nums[l-1]) l++;
while(l<r&&nums[r]==nums[r+1]) r--;
}
else if(nums[l]+nums[r]>sum) r--;
else l++;
}
}
}
return v;
}
};