LeetCode 15. 3sum
来源:互联网 发布:罗技m905软件 编辑:程序博客网 时间:2024/05/16 12:23
题意描述
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]
]
分析
初步想法,分而治之。时间复杂度
1. 首先本问题是找到三个数,使得他们的和为0:依次枚举S中的每一个数字,假定它就是使得
2. 接下来要处理的就是找到两个数,使得他们的和为
3. 最后判断数组中是否存在一个
注意:输出结果的组合方式不能相同,这里使用
实现代码
class Solution {public: vector<vector<int> > threeSum(vector<int>& nums) { vector<vector<int> > result; set<vector<int> > s; for (int z = 0; z < nums.size(); ++z) { int twosum = nums[z] * (-1); for (int i = 0;i < nums.size(); ++i) { vector<int> two; if (i == z) continue; int lastNum = twosum - nums[i]; //bool flag = false; for (int k = 0; k < nums.size(); ++k) { if (k == i || (k == z)) continue; if (lastNum == nums[k]) { two.push_back(nums[i]); two.push_back(lastNum); two.push_back(nums[z]); sort(two.begin(), two.end()); s.insert(two); break; } } } } for (auto it = s.begin(); it != s.end(); ++it) { result.push_back(*it); } return result; }};
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
- Java 多线程学习笔记之synchronized
- 零死角玩转stm32-高级篇之SDIO(4bit + DMA、支持SDHC、带协议分析)
- 《Java编程思想第四版》笔记---14章 附:Java 类加载器
- 数据库 Oracle记录安全事件日志
- 通过过滤器实现控制动态资源不要缓存
- LeetCode 15. 3sum
- JavaScript获取时间并输出
- Java接口与数据回收使用
- didi uber大战
- Java中方法及值的不同层次使用
- Android Studio2.1之后虚拟机中文输入
- DM&ML_note.2.2-C4.5决策树
- Java中的getMessage()与printStackTrace()以及throws与throw
- Android dispatchTouchEvent介绍