leetcode 15. 3Sum
来源:互联网 发布:苹果序列号查询软件 编辑:程序博客网 时间:2024/06/05 03:40
相关问题
1. Two Sum
15. 3Sum
16. 3Sum Closest
18. 4Sum
454. 4Sum II
Discription
Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.
Note: The solution set must not contain duplicate triplets.
For example, given array S = [-1, 0, 1, 2, -1, -4],
A solution set is:
[
[-1, 0, 1],
[-1, -1, 2]
]
思路
双指针。
固定
考虑到可能出现重复元素,首先对所有元素排序,选定
注意:排序+选择策略是常用的避免重复结果的方法。
时间复杂度:
空间复杂度:
代码
class Solution {public: // 排序+双指针 vector<vector<int>> threeSum(vector<int>& nums) { // 排序+策略处理重复元素 sort(nums.begin(), nums.end()); vector<vector<int>> res; if (nums.size() < 3) return res; int i = 0; while(i < nums.size() - 2) { if (i > 0 && nums[i] == nums[i - 1]) // 避免重复 { i++; continue; } int left = i + 1, right = nums.size() - 1; while(left < right) { if (left > i + 1 && nums[left] == nums[left - 1]) // 避免重复 { left++; continue; } if (right < nums.size() - 1 && nums[right] == nums[right + 1]) // 避免重复 { right--; continue; } if (nums[i] + nums[left] + nums[right] == 0) { res.push_back({nums[i], nums[left], nums[right]}); left++; right--; continue; } if (nums[i] + nums[left] + nums[right] < 0) { left++; continue; } if (nums[i] + nums[left] + nums[right] > 0) { right--; continue; } } i++; } return res; }};
阅读全文
0 0
- LeetCode 15. 3Sum
- LeetCode --- 15. 3Sum
- [Leetcode] 15. 3Sum
- 【LeetCode】15. 3Sum
- 【leetcode】15. 3sum
- 【leetcode】15. 3Sum
- [leetcode] 15. 3Sum
- leetcode 15. 3Sum
- leetcode 15. 3Sum
- leetcode 15. 3Sum
- Leetcode 15. 3Sum
- LeetCode - 15. 3Sum
- [LeetCode]15. 3Sum
- Leetcode 15. 3Sum
- leetcode 15. 3Sum
- leetcode 15. 3Sum
- 【leetcode】15. 3Sum
- Leetcode - 15. 3Sum
- CentOS xueliang is not in the sudoers file. This incident will be reported
- opencv2函数学习之threshold:实现图像阈值化 在opencv2中,threshold函数可以进行阈值化操作。 double threshold( const Mat& src, M
- file_put_contents 追加写
- OpenStack-Ocata (一)
- Scrapy在Ubuntu中的配置
- leetcode 15. 3Sum
- 条款20:宁以pass-by-reference-to-const替换pass-by-value
- Java知识--接口
- [牛客网算法笔记]完美洗牌问题
- 流水账笔记:PE文件格式(重定位表)
- java作业
- 口胡【NOIP2012DAY1】借教室
- 使用Navicat生成ER关系图并导出
- IPv6 解说 ,与IPv4的同异