[Leetcode] 15.3Sum
来源:互联网 发布:coach淘宝代购 编辑:程序博客网 时间:2024/06/05 10:40
本题可转化成2Sum问题,但不同的是需要注意有可能有多值,需要在添加过程中去掉重复的元素。代码如下:
1 class Solution 2 { 3 public: 4 vector<vector<int> > threeSum(vector<int> &num) 5 { 6 vector<vector<int> > res; 7 sort(num.begin(), num.end()); 8 for (int i = 0; i < num.size(); i++) 9 {10 int target = -num[i];11 int front = i + 1;12 int back = num.size() - 1;13 while (front < back)14 {15 int sum = num[front] + num[back];16 // 由两侧向中间查找target17 if (sum < target)18 front++;19 else if (sum > target)20 back--;21 else22 {23 vector<int> triplet(3, 0);24 triplet[0] = num[i];25 triplet[1] = num[front];26 triplet[2] = num[back];27 res.push_back(triplet);28 //找到下一个不同的num[front]29 while (front < back && num[front] == triplet[1]) front++;30 //找到下一个不同的num[back]31 while (front < back && num[back] == triplet[2]) back--;32 }33 }34 //找到下一个不同的num[i]35 while (i + 1 < num.size() && num[i + 1] == num[i])36 i++;37 }38 return res;39 }40 };
阅读全文
0 0
- [LeetCode]15.3Sum
- LeetCode 15.3Sum
- [Leetcode] 15.3Sum @python
- LeetCode-15.3Sum
- Leetcode||15.3Sum
- 15.3sum leetcode(array)
- [LeetCode]15.3Sum
- [LeetCode]15.3Sum
- [leetcode: Python]15.3Sum
- LeetCode 15.3Sum
- LeetCode----- 15.3Sum
- leetcode 15.3 Sum
- [Leetcode] 15.3Sum
- 菜鸟刷leetcode 15.3Sum
- LeetCode——15.3Sum
- leetcode——15.3Sum
- 【Leetcode】Path Sum (Sum)
- 【Leetcode】Two Sum (Sum)
- linux搭建mysql集群服务负载均衡搭建java连接mysql集群
- 正则表达式 \w \d . \s常用字符的简写
- LeetCode难度和面试频率(转)
- 函数中的静态变量
- [Leetcode] 8.String to Integer (atoi)
- [Leetcode] 15.3Sum
- 文章标题
- [Leetcode] 20. Valid Parentheses(Stack)
- [LeetCode] 21. Merge Two Sorted Lists
- [算法] 字符串的简单模式匹配
- tomcat配置https
- [LeetCode] 28. Implement strStr()
- 第6章 树莓派摄像头操作
- [LeetCode] 56. Merge Intervals(vector sort)