leetcode 15. 3Sum

来源:互联网 发布:淘宝买家真人内衣秀 编辑:程序博客网 时间:2024/04/29 07:02
class Solution {public:vector<vector<int>> threeSum(vector<int>& nums) {vector<vector<int>> res;sort(nums.begin(), nums.end());for (int i = 0; i < nums.size(); i++){int sum = -nums[i]; // find two elements of witch the sum is -nums[i]int left = i + 1, right = nums.size() - 1;while (left < right){int SumOfTwo = nums[left] + nums[right];if (SumOfTwo == sum){vector<int> triplets;triplets.push_back(nums[i]);triplets.push_back(nums[left]);triplets.push_back(nums[right]);res.push_back(triplets);while (left < right && nums[left] == triplets[1]) //get rid of duplicates{left++;}while (left < right && nums[left] == triplets[2]){right--;}}else if (SumOfTwo > sum){right--;}else{left++;}}while (i+1 < nums.size() && nums[i] == nums[i+1]){i++;}}return res;}};

0 0
原创粉丝点击