这个题可以用set里面套vector<int> 进行去重,起初以为需要重载运算符,其实不用,
所以挺简单的:
class Solution {
public:
vector<vector<int> > threeSum(vector<int> &num) {
vector<vector<int>> v;
set<vector<int> > hash;
int n=num.size();
sort(num.begin(),num.end());
for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++)
for(int k=j+1;k<n;k++){
if(num[i]+num[j]+num[k]==0){
vector<int> tem;
tem.push_back(num[i]);
tem.push_back(num[j]);
tem.push_back(num[k]);
hash.insert(tem);
}
}
for(auto it=hash.begin();it!=hash.end();it++)
v.push_back(*it);
return v;
}
};