class Solution { public: vector<vector<int> > threeSum(vector<int> &num) { sort(num.begin(),num.end()); set<vector<int>>ans; vector<vector<int>>res; if(num.size()<3)return res; for(int i=1;i<=num.size()-2;i++) { int l=0,r=num.size()-1; while(l<i&&r>i) { int k=num[l]+num[r]; if(k+num[i]==0) { ans.insert({num[l],num[i],num[r]}); l++; } else if(k+num[i]>0)r--; else l++; } } for(auto x:ans)res.push_back(x); return res; } };