//这需要注意重复情况的消除
class Solution {
public:vector<vector<int> > fourSum(vector<int> &num, int target) {
sort(num.begin(),num.end());
vector<vector<int>> res;
for(int i=0;i<num.size();i++)
{
if(i>0 && num[i] == num[i-1])
continue;
for(int j=i+1;j<num.size();j++)
{
if(j>i+1 && num[j]==num[j-1])
continue;
int l = j+1;
int r = num.size()-1;
while(r>l)
{
if(l>j+1 && num[l]==num[l-1])
{l++;continue;}
if(r<num.size()-1 && num[r]==num[r+1])
{r--;continue;}
int t = num[i]+num[j]+num[l]+num[r];
if(t == target)
{
vector<int> temp;
temp.push_back(num[i]);
temp.push_back(num[j]);
temp.push_back(num[l]);
temp.push_back(num[r]);
res.push_back(temp);
l++;
//temp.clear();
}
else if(t > target)
r--;
else if(t < target)
l++;
}
}
}
return res;
}
};