class Solution {
public:
vector<vector<int>> threeSum(vector<int>& nums) {
vector< vector<int> >ans;
if(nums.size()<3)return ans;
sort(nums.begin(),nums.end());
for(int a=0; a<nums.size()-2; a++)
{
if(a>0&&nums[a]==nums[a-1])continue;
int b=a+1;
int c=nums.size()-1;
int target=0-nums[a];
while(b<c)
{
if(nums[b]+nums[c]==target)
{
vector<int>t;
t.push_back(nums[a]);
t.push_back(nums[b]);
t.push_back(nums[c]);
ans.push_back(t);
while(b<c&&nums[b]==nums[b+1])b++;
while(b<c&&nums[c]==nums[c-1])c--;
b++;
c--;
}
else if(nums[b]+nums[c]<target)
{
b++;
}
else
{
c--;
}
}
}
return ans;
}
};
3Sum
最新推荐文章于 2024-09-12 19:02:20 发布