class Solution {
public:
vector<vector<int>> threeSum(vector<int>& nums) {
vector<int> set;
vector<vector<int> > res;
if(nums.size()<3)
return res;
sort(nums.begin(),nums.end());
for(int i=0;i<nums.size()-2;i++)
{
int j=i+1;
int k=nums.size()-1;
while(j<k)
{
if(nums[i]+nums[j]+nums[k]<0)
{
j++;
continue;
}
else if(nums[i]+nums[j]+nums[k]>0)
{
k--;
continue;
}
else
{
set.push_back(nums[i]);
set.push_back(nums[j]);
set.push_back(nums[k]);
res.push_back(set);
set.clear();
j++;
}
while(nums[j]==nums[j-1])
j++;
}
while(i<nums.size()-1&&nums[i]==nums[i+1])
i++;
}
return res;
}
};
leetcode 15: 3Sum
最新推荐文章于 2019-08-03 17:11:38 发布