leetcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
class  {
public:
vector<vector<int>> fourSum(vector<int>& nums, int target) {
sort(nums.begin(),nums.end());
int len = nums.size();
vector<vector<int>> v;
set<vector<int>> s;
if(len<4) return v;
for(int i=0;i<len-3;i++){
for(int j=i+1;j<len-2;j++){
int k=j+1, l=len-1;
while(k<l){
int sum = nums[i]+nums[j]+nums[k]+nums[l];
if(sum<target){
++k;
} else if(sum>target){
--l;
} else{
vector<int> temp = {nums[i],nums[j],nums[k],nums[l]};
s.insert(temp);
++k;
--l;
}
}
}
}
for(auto item:s){
v.push_back(item);
}
return v;
}
};

与3Sum一样的做法,不赘述。