#include <vector> class Solution { public: vector<vector<int>>ans; vector<int> t; set<vector<int>> s; vector<vector<int> > threeSum(vector<int> &num) { if(num.size()<3) return ans; sort(num.begin(),num.end()); for(int i=0;i<num.size()-2;i++){ int j=i+1,k=num.size()-1; while(j<k){ int sum=num[i]+num[j]+num[k]; if(sum==0){ t.push_back(num[i]); t.push_back(num[j]); t.push_back(num[k]); sort(t.begin(),t.end()); if(s.count(t)==0){ ans.push_back(t); s.insert(t); } t.clear(); // if(num[k]==num[k-1]){ // k--; // } // else if(num[j]==num[j+1]){ // j++; // } // else { j++; k--; // } } else if(sum<0){ j++; } else k--; } } return ans; } };