leetcode 16 3Sum
Posted 去做点事情
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 16 3Sum相关的知识,希望对你有一定的参考价值。
class Solution { public: vector<vector<int>> threeSum(vector<int>& nums) { vector<vector<int>> result; std::sort(nums.begin(),nums.end()); for(int i = 0;i < nums.size();i++){ int target = 0 - nums[i]; int first = i+1; int end = nums.size() - 1; while(first < end){ if(nums[first] + nums[end] == target){ vector<int> res; int num1 = nums[first]; int num2 = nums[end]; res.push_back(nums[i]); res.push_back(num1); res.push_back(num2); result.push_back(res); while(first < end && nums[first] == num1) first++; 相同的数字过滤掉 while(first < end && nums[end] == num2) end--; 相同的数字过滤掉 } else if(nums[first] + nums[end] < target) first++; else end--; } while (i + 1 < nums.size() && nums[i + 1] == nums[i]) i++; 相同的数字过滤掉 } return result; } };
以上是关于leetcode 16 3Sum的主要内容,如果未能解决你的问题,请参考以下文章