vector<vector<int>> threeSum(vector<int>& nums) {
vector<vector<int>> res;
if(nums.size()<=2)return res;
sort(nums.begin(),nums.end());
for(int n=0;n<nums.size()-2;n++)
{
if(nums[n]>0)break;
if(n>0&&nums[n-1]==nums[n])continue;
int target=-nums[n];
int i=n+1,j=nums.size()-1;
while(i<j)
{
if(nums[i]+nums[j]==target)
{
res.push_back({nums[n],nums[i],nums[j]});
while(i<j&&nums[i]==nums[i+1])i++;
while(i<j&&nums[j]==nums[j-1])j--;
i++;j--;
}
else if(nums[i]+nums[j]>target)j--;
else i++;
}
}
return res;
}
Leetcode 第15题
猜你喜欢
转载自blog.csdn.net/TempterCyn/article/details/82871319
今日推荐
周排行