18. 4Sum
来源:互联网 发布:windows10固态硬盘优化 编辑:程序博客网 时间:2024/06/06 21:40
一、问题
Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = target? Find all unique quadruplets in the array which gives the sum of target.Note: The solution set must not contain duplicate quadruplets.For example, given array S = [1, 0, -1, 0, -2, 2], and target = 0.A solution set is:[ [-1, 0, 0, 1], [-2, -1, 1, 2], [-2, 0, 0, 2]]
二、解题
class Solution {public: vector<vector<int> > fourSum(vector<int> &num, int target) { vector<vector<int>> out; set<vector<int>> res; if (num.size() < 4) return out; sort(num.begin(), num.end()); for (int i = 0; i<num.size() - 3; i++) { for (int j = i + 1; j<num.size() - 2; j++) { int begin = j + 1; int end = num.size() - 1; while (begin < end) { int sum = num[i] + num[j] + num[begin] + num[end]; if (sum == target) { vector<int> tmp; tmp.push_back(num[i]); tmp.push_back(num[j]); tmp.push_back(num[begin]); tmp.push_back(num[end]); res.insert(tmp); begin++; end--; } else if (sum < target) { begin++; } else { end--; } } } } set<vector<int>>::iterator it = res.begin(); for (; it != res.end(); it++) out.push_back(*it); return out ; }};
阅读全文
0 0
- 15. 3Sum 和 18. 4Sum
- LeetCode --- 18. 4Sum
- [Leetcode] 18. 4Sum
- 18. 4Sum
- 18. 4Sum
- 18. 4Sum
- 18. 4Sum
- 18. 4Sum
- 18. 4Sum
- leetcode 18. 4Sum
- 18. 4Sum
- 18. 4Sum
- 18. 4Sum
- 18. 4Sum LeetCode
- 18. 4Sum
- leetcode 18. 4Sum
- 18. 4Sum
- 18. 4Sum
- [ubuntu 12] 查看文件命令 2015年总结
- MySQL导入-导出数据库-mac版
- Python数据合并
- 移动端开发小知识点
- DES、AES、RSA等常用加密算法介绍与比较
- 18. 4Sum
- Eclipse将项目打包成jar包
- ORA-14551: 无法在查询中执行 DML 操作
- 神奇俯卧睡眠
- jenkins创建maven项目Faile to repository:Command
- 1960-征战的Loy
- 成绩单
- windows server 2008辅助域控制器的安装方法
- PHP 命名空间与自动加载