LeetCode 3Sum
2012-12-29 22:14
106 查看
class Solution { public: vector<vector<int> > threeSum(vector<int> &num) { // Start typing your C/C++ solution below // DO NOT write int main() function vector<vector<int> > triplet; int len = num.size(); if (len < 3) { return triplet; } sort(num.begin(), num.end()); int begin, end, sum; bool left, right; vector<int> temp; for (int i = 0; i < len - 2; i++) { if (i != 0 && num[i] == num[i - 1]) { continue; } begin = i + 1; end = len - 1; while (begin < end) { sum = num[begin] + num[end]; left = false; right = false; if (sum == -num[i]) { temp.push_back(num[i]); temp.push_back(num[begin]); temp.push_back(num[end]); triplet.push_back(temp); temp.clear(); left = true; right = true; } else if (sum > -num[i]) { left = true; } else { right = true; } if (right == true) { begin++; while (begin < len - 1 && num[begin] == num[begin - 1]) { begin++; } } if (left == true) { end--; while (end > i + 1 && num[end] == num[end + 1]) { end--; } } } } return triplet; } };
相关文章推荐
- *Leetcode_path-sum-ii
- [Leetcode]Path Sum&Path Sum II
- leetcode 064 —— Minimum Path Sum
- LeetCode@HashMap_404_Sum_of_Left_Leaves
- LeetCode (1) Two Sum
- LeetCode -- Combination Sum III
- LeetCode113—Path Sum II
- LeetCode Path Sum
- LeetCode 1 Two Sum for java
- LeetCode 1. Two Sum (C++)
- LeetCode刷题笔记(Two Sum)
- Sum Root to Leaf Numbers - LeetCode 129
- LeetCode修仙:Two Sum详解
- LeetCode 112 — Path Sum(C++ Java Python)
- LeetCode || Path Sum II
- leetcode 303. Range Sum Query - Immutable
- Leetcode : Binary Tree Maximum Path Sum
- LeetCode题解:Path Sum I and II
- 43_leetcode_Combination Sum II
- leetcode--Sum Root to Leaf Numbers