解题思路:
(1)组合,注意i+1和l+1
#include<algorithm>
class Solution {
private:
vector<vector<int> > vec;
public:
void combination(vector<int> &v, int k, vector<int> &num, int begin, int index) {
if(k==0) {
if(v[0]+v[1]+v[2]==0) {
if(find(vec.begin(),vec.end(),v)==vec.end())
vec.push_back(v);
}
return;
}
for(int i=begin;i<num.size();i++) {
v[index]=num[i];
combination(v,k-1,num,i+1,index+1);
}
}
vector<vector<int> > threeSum(vector<int> &num) {
sort(num.begin(),num.end());
vector<int> v(3,0);
combination(v, 3, num, 0, 0);
return vec;
}
};