3Sum

来源:互联网 发布:apk制作软件 编辑:程序博客网 时间:2024/06/11 18:13
class Solution {public:    vector<vector<int> > threeSum(vector<int> &num) {vector<vector<int> > ret;if(num.size()<3) return ret;        sort(num.begin(),num.end());const size_t len=num.size();size_t aIndex=0,bIndex,cIndex;//a+b+c==0while(aIndex<len && num[aIndex]<=0){bIndex=aIndex+1;cIndex=len-1;while(bIndex<cIndex){if(num[aIndex]+num[bIndex]+num[cIndex]==0){vector<int> tmp;tmp.push_back(num[aIndex]);tmp.push_back(num[bIndex]);tmp.push_back(num[cIndex]);ret.push_back(tmp);bIndex++;while(bIndex<len && num[bIndex]==num[bIndex-1])        {            bIndex++;        }}else{if(num[aIndex]+num[bIndex]+num[cIndex]>0){cIndex--;}else{bIndex++;}}}aIndex++;while(aIndex<len && num[aIndex]==num[aIndex-1]){    aIndex++;}}return ret;    }};

0 0
原创粉丝点击