class Solution {
public:
vector<vector<int> > threeSum(vector<int> &num)
{
vector<vector<int>>result;
vector<int>vec;
int len = num.size();
//assert(len<3);
sort(num.begin(),num.end());
int j,k;
for(int i=0;i<len-2;i++)
{
if(i!=0&&num[i]==num[i-1])continue;
j=i+1;
k=len-1;
while(j<k)
{
if(j>i+1&&num[j]==num[j-1]){j++;continue;}
if(k<len-1&&num[k]==num[k+1]){k--;continue;}
if(num[i]+num[j]+num[k]>0)
{
k--;
continue;
}
if(num[i]+num[j]+num[k]<0)
{
j++;
continue;
}
vec.push_back(num[i]);
vec.push_back(num[j]);
vec.push_back(num[k]);
result.push_back(vec);
vec.clear();
j++;
continue;
}
}
return result;
}
};
leetcode-3Sum
最新推荐文章于 2022-02-10 12:14:07 发布