题解 | #三数之和#
三数之和
http://www.nowcoder.com/practice/345e2ed5f81d4017bbb8cc6055b0b711
class Solution { public: vector<vector > threeSum(vector &num) { vector<vector>ans; vectortmp; int n=num.size(); if(n<3) return ans; sort(num.begin(),num.end()); for(int i =0;i<n-2;i++){ int j=i+1,k=n-1,target=0; while(j<k){ if(-num[i]==num[j]+num[k]){ tmp.push_back(num[i]); tmp.push_back(num[j]); tmp.push_back(num[k]); for(auto i :ans){ if (tmp==i) target=1; } if(target==0) ans.push_back(tmp); tmp.clear(); target=0; j++; k--; } else if(-num[i]<num[j]+num[k]){ k--; } else{ j++; } } } return ans; } };


