15.3Sum
来源:互联网 发布:阿里云 免费虚拟 编辑:程序博客网 时间:2024/06/06 10:56
思路
2sum的升级版
先做一个排序
从第一个开始遍历
从后面的数字找到两个数的和等于第一个的负数
因为排过序之后
取两边方向加到中间即可
关键在于去除冗余
所以要加上一些个判断
vector<vector<int> > threeSum(vector<int> &num) { vector<vector<int> > res; std::sort(num.begin(), num.end()); for (int i = 0; i < num.size(); i++) { int target = -num[i]; int front = i + 1; int back = num.size() - 1; while (front < back) { int sum = num[front] + num[back]; // Finding answer which start from number num[i] if (sum < target) front++; else if (sum > target) back--; else { vector<int> triplet(3, 0); triplet[0] = num[i]; triplet[1] = num[front]; triplet[2] = num[back]; res.push_back(triplet); // Processing duplicates of Number 2 // Rolling the front pointer to the next different number forwards while (front < back && num[front] == triplet[1]) front++; // Processing duplicates of Number 3 // Rolling the back pointer to the next different number backwards while (front < back && num[back] == triplet[2]) rear--; } } // Processing duplicates of Number 1 while (i + 1 < num.size() && num[i + 1] == num[i]) i++; } return res; }
0 0
- 15.3Sum
- 15.3Sum
- 15.3sum
- 15.3Sum
- 15.3Sum
- 15.3Sum
- 15.3Sum
- 15.3 Sum
- 15.3Sum
- 15.3Sum &16.3Sum Closest
- [LeetCode]15.3Sum
- LeetCode 15.3Sum
- Algorithms—15.3Sum
- [Leetcode] 15.3Sum @python
- LeetCode-15.3Sum
- Leetcode||15.3Sum
- 15.3sum leetcode(array)
- [LeetCode]15.3Sum
- sublime-text3常用插件
- 浅谈 MVP in Android
- 欢迎使用CSDN-markdown编辑器
- 单词排序
- 源码面前,原形毕露之String源码阅读
- 15.3Sum
- leetcode204. Count Primes
- nodejs运行第三方不信任脚本实现方案
- python .split()
- android 百度地图 不显示地图内容 而是显示 一片 蓝色
- 关于redis、memcache、mongoDB 的对比
- Random
- L1-002. 打印沙漏
- 如何接收不固定参数个数的参数传值问题