leetcode-15-3sum
2017-09-28 16:45
477 查看
问题
题目:[leetcode-15]思路
我之间用dfs做的。但是,这次看到新的方法。算是两根指针夹逼的做法。
相等时的情形,处理比较重要。避免了o(n^3)。如果,i,j不动。就不行。
代码
class Solution { public: vector<vector<int>> threeSum(vector<int>& nums) { vector< vector<int> > ret; int sz = nums.size(); sort( nums.begin(), nums.end() ); for(int i = 0; i < sz-2; ++i){ if( i && nums[i] == nums[i-1] ) continue; int j = i+1; int k = sz-1; while( j < k ) { int t = nums[i] + nums[j] + nums[k]; if( t == 0 ) { vector<int> tmp; tmp.push_back(nums[i]); tmp.push_back(nums[j]); tmp.push_back(nums[k]); ret.push_back(tmp); ++j; --k; while(nums[j] == nums[j-1]) ++j; } else if( t < 0 ) { ++j; while(nums[j] == nums[j-1]) ++j; } else{ --k; } } } return ret; } };
相关文章推荐
- LeetCode15 3Sum
- [Leetcode] 15. 3Sum
- leetcode 15 -- 3Sum
- LeetCode - 15 - 3Sum(内有two sum)
- [LeetCode15]3Sum
- leetcode15 3Sum(java 实现)
- [LeetCode]--15. 3Sum
- LeetCode-15:3Sum
- leetCode_15_3Sum
- leetcode question 15 : 3Sum
- leetcode 15 3sum问题
- leetcode -15 3sum
- 【leetcode 15】javascript 3Sum
- LeetCode 15 - 3Sum
- [LeetCode 15] 3Sum
- [Leetcode] 15. 3Sum 解题报告
- LeetCode 15 3Sum
- 【leetcode】【15】3Sum
- [leetcode-15]3Sum(java)
- LeetCode 15 3Sum