LeetCode: 3Sum
来源:互联网 发布:你是一个好人知乎 编辑:程序博客网 时间:2024/05/14 00:28
思路:先排序,然后遍历数组得到A[i],设置两个指针指向i后的第一个元素和最后一个元素,分别为j,k,如果A[i] + A[j] + A[k] < 0,j后移,如果大于0,k 左移,如果相等则加入结果向量中。注意排除重复解。
code:
class Solution {public: vector<vector<int> > threeSum(vector<int> &num) { sort(num.begin(),num.end()); vector<vector<int> > ret; for(int i = 0;i < num.size();i++){ if(i > 0 && num[i] == num[i-1]) continue; int j = i + 1, k = num.size() - 1; while(j < k){ if(j > i+1 && num[j] == num[j-1]){ j++; continue; } if(k < num.size() - 2 && num[k] == num[k+1]){ k--; continue; } if(num[i] + num[j] + num[k] > 0) k--; else if(num[i] + num[j] + num[k] < 0) j++; else{ vector<int> t = {num[i],num[j],num[k]}; ret.push_back(t); j++; } } } return ret; }};
0 0
- 【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] 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
- leetcode 3Sum Closest
- LeetCode: 3Sum
- 关于cvReshape和cvGetRow的用法
- 结构体_3
- Android手机一键Root原理分析
- 国际化
- 我了解redis那些事
- LeetCode: 3Sum
- JavaEE学习之路-Creating and Initializing a Servlet
- datetimepicker for bootstrap v3
- java防止反编译
- 我的13~14——蜕变的一年
- IP138 IP地址查询 php实例
- Redhat Linux install Eclipse
- struts2漏洞攻击一例
- c++ 解析纯真IP数据库qqwry