leetcode记录15. 3Sum
class Solution {
public:
vector<vector<int>> threeSum(vector<int>& nums) {
sort(nums.begin(), nums.end());
vector<vector<int>> result;
if (nums.size() < 3) return {};
for(int i = 0; i < (nums.size() - 2); i++)
{
int j = i + 1;
int k = nums.size() - 1;
while(j < k)
{
int sum = nums[i] + nums[j] + nums[k];
if(sum == 0)
{
vector<int> temp;
temp.push_back(nums[i]);
temp.push_back(nums[j]);
temp.push_back(nums[k]);
result.push_back(temp);
int l = nums[j];
int r = nums[k];
while(l == nums[j] && j < k)
{
j++;
}
while(r == nums[k] && j < k)
{
k--;
}
}
else if(sum < 0)
{
j++;
}
else if(sum > 0)
{
k--;
}
}
while(i < nums.size() - 2)
{
if(nums[i] == nums[i+1])
{
i++;
}
else
{
break;
}
}
}
return result;
}
};