演算法3Sum
- class Solution {
- public:
-
vector
int > > threeSum(vector<int> &num) { - // Start typing your C/C++ solution below
- // DO NOT write int main() function
-
vector
int > > vec; - if (num.size()
- return vec;
- sort(num.begin(), num.end());
- for (vector<int>::size_type i = 0; i
- {
- if (num[i] > 0)
- break;
- int j = i + 1, k = num.size() - 1;
- while (j
- {
- if (num[i] + num[j] > 0)
- break;
- if (num[j] + num[k]
- ++j;
- else if (num[j] + num[k] > -num[i])
- --k;
- else
- {
- vector<int> vec1;
- vec1.push_back(num[i]);
- vec1.push_back(num[j]);
- vec1.push_back(num[k]);
- vec.push_back(vec1);
- //去重
- while (j
- ++j;
- while (k > j && num[k] == num[k - 1])
- --k;
- ++j;
- --k;
- }
- }
- //去重
- while (i
- ++i;
- }
- return vec;
- }
- };
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29012686/viewspace-1153202/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 演算法3Sum Closest演算法
- 演算法學習之一:3SUM變體演算法
- 秒殺 2Sum 3Sum 4Sum 演算法題演算法
- Leetcode 3SumLeetCode
- [LintCode] 3Sum Smaller
- Leetcode 15 3SumLeetCode
- 15. 3Sum(圖解)圖解
- Leetcode 3Sum ClosestLeetCode
- Leetcode 16 3Sum ClosestLeetCode
- 3Sum Closest leetcode javaLeetCodeJava
- [LeetCode] 3Sum 三數之和LeetCode
- [LeetCode] 3Sum Closest 最近三數之和LeetCode
- LeetCode 3Sum(015)解法總結LeetCode
- LeetCode 3Sum Closest(016)解法總結LeetCode
- 【LeetCode從零單排】No15 3SumLeetCode
- 【演算法】KMP演算法演算法KMP
- 演算法-回溯演算法演算法
- 【JAVA演算法】圖論演算法 -- Dijkstra演算法Java演算法圖論
- 演算法(2)KMP演算法演算法KMP
- 【演算法】遞迴演算法演算法遞迴
- 演算法題:洗牌演算法演算法
- [演算法之回溯演算法]演算法
- Manacher演算法、KMP演算法演算法KMP
- 【演算法】KMP演算法解析演算法KMP
- 介面限流演算法:漏桶演算法&令牌桶演算法演算法
- 前端演算法:快速排序演算法前端演算法排序
- 演算法初探--遞迴演算法演算法遞迴
- BP演算法和LMBP演算法演算法
- 隨機演算法 概率演算法隨機演算法
- STL::演算法::常見演算法演算法
- 常用演算法 插值演算法演算法
- 前向分步演算法 && AdaBoost演算法 && 提升樹(GBDT)演算法 && XGBoost演算法演算法
- c/c++ 通用的(泛型)演算法 之 只讀演算法,寫演算法,排序演算法C++泛型演算法排序
- 介面限流演算法:漏桶演算法&令牌桶演算法&redis限流演算法Redis
- 什麼是演算法?如何學習演算法?演算法入門演算法
- 演算法金 | 突破最強演算法模型,決策樹演算法!!演算法模型
- 分類演算法-AdaBoot 演算法演算法boot
- 演算法(八):圖解KNN演算法演算法圖解KNN