[Leetcode]_15 3Sum
来源:互联网 发布:物联网数据卡 编辑:程序博客网 时间:2024/06/05 15:40
/** * Index: 15 * Title: 3Sum * Author: ltree98 **/
暴力肯定TLE,不用多想。
先对所有数据进行排序,
然后从第一个数开始,取一个数,计算这个数后面是否有两个数加这个数等于0。
最关键就是:
- 排序(此方法的基点)
- 确定一组答案后过滤前后同值的数(过滤同样的答案, 且不影响其他不同的答案)
class Solution {public: vector<vector<int>> threeSum(vector<int>& nums) { if(nums.size() < 3) return {}; std::sort(nums.begin(), nums.end()); vector<vector<int>> ans; for(int i = 0; i < nums.size(); ) { int l = i+1, h = nums.size()-1, s = -nums[i]; while(l < h) { if(nums[l] + nums[h] == s) { ans.push_back({nums[i], nums[l], nums[h]}); l++, h--; while(l < h && nums[l] == nums[l-1]) l++; while(l < h && nums[h] == nums[h+1]) h--; } else if(nums[l] + nums[h] < s) l++; else h--; } i++; while(i < nums.size() && nums[i] == nums[i-1]) i++; } return ans; }};
0 0
- [Leetcode]_15 3Sum
- 【Leetcode】3Sum (Sum)
- Leetcode:2Sum,3Sum
- 【Leetcode】3Sum Closest (Sum)
- leetcode 2 sum 3sum 4sum
- Leetcode 2SUM-3SUM-4SUM
- Leetcode-2sum,3sum,4sum
- leetcode 2 sum & 3 sum & 4 sum
- LeetCode刷题系列_15题
- [LeetCode] 2Sum, 3Sum, 4Sum, 3SUm closet
- [LeetCode] K sum(2Sum、3Sum、4Sum)
- leetcode--sum集合:2sum,3sum,4sum
- leetcode --- 2 sum , 3 sum , 4 sum , k sum problem
- LeetCode: 3Sum
- LeetCode: 3 Sum Closest
- leetcode - 3 Sum
- leetcode - 3 sum closest
- leetcode 3Sum
- 机器学习——最小二乘法
- Mysql 统计函数
- C ++指针入门详解
- [2017.4.17]IMWEB前端小白训练营日记(三)
- JetBrains系IDE快捷键分类整理
- [Leetcode]_15 3Sum
- 1123 平面中的点 point类Ⅲ
- collection单列集合子类有list和set,还有迭代器iterator
- day70_webservice
- Python:如何获取当前的日期和时间
- JS中mouseover和mouseout多次触发问题如何解决
- QPlainTextEdit、QTextEdit、QColorDialog的汉化
- 【Java】多线程系列(二)之CountDownLatch的使用
- PowerDesigner入门教程(网上书店)