LeetCode刷题(C++)——4Sum(Medium)
来源:互联网 发布:网络教学的哪些专业好 编辑:程序博客网 时间:2024/06/06 08:26
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>& nums, int target) { vector<vector<int>> res;if (nums.empty())return res;sort(nums.begin(), nums.end());int len = nums.size();for (int i = 0; i < len;i++) {for (int j = i + 1;j < len;j++) {int m = j + 1, n = len- 1;while (m < n) { vector<int> v;int sum = nums[i] + nums[j] + nums[m] + nums[n];if (sum == target) {v.push_back(nums[i]);v.push_back(nums[j]);v.push_back(nums[m]);v.push_back(nums[n]);res.push_back(v);while (m + 1 < len&&nums[m] == nums[m + 1])++m;while (n > 0 && nums[n] == nums[n - 1])--n;++m;--n;}else if (sum < target) {while (m + 1 < len&&nums[m] == nums[m + 1])++m;++m;}else {while (n > 0 && nums[n] == nums[n - 1])--n;--n;}}while (j + 1 < len&&nums[j] == nums[j + 1])++j;}while (i + 1 < len&&nums[i] == nums[i + 1])++i;}return res; }};
0 0
- LeetCode刷题(C++)——4Sum(Medium)
- LeetCode刷题(C++)——3Sum(Medium)
- LeetCode刷题(C++)——Path Sum II(Medium)
- LeetCode刷题(C++)——3Sum Closest(Medium)
- LeetCode刷题(C++)——Minimum Path Sum(Medium)
- LeetCode刷题(C++)——ZigZag Conversion(Medium)
- LeetCode刷题(C++)——Generate Parentheses(Medium)
- LeetCode刷题(C++)——Next Permutation(Medium)
- LeetCode刷题(C++)——Sort Colors(Medium)
- LeetCode刷题(C++)——Rotate List(Medium)
- LeetCode刷题(C++)——Word Search(Medium)
- LeetCode刷题(C++)——Sort List(Medium)
- 题解——Leetcode 18. 4Sum 难度:Medium
- LeetCode-1-Two Sum(哈希)-Medium
- [LeetCode] 018. 4Sum (Medium) (C++/Java/Python)
- [Leetcode 18, medium] 4 Sum
- [LeetCode] 039. Combination Sum (Medium) (C++)
- [leetcode] 040. Combination Sum II (Medium) (C++)
- Ehcache(02)——ehcache.xml配置简介
- JAVA开发之 4-编写我的第一个程序(helloworld)
- SVN客户端清空保存的密码重新输入的操作
- vs2013编译bitcoin源码(bitcoin-0.9.4)
- 数据结构List示例(一):链表反转
- LeetCode刷题(C++)——4Sum(Medium)
- dubbo接口配置说明
- 2017 ACM山东省赛 D
- Maven中junit打包问题
- Spring MVC 整合 Swagger2
- Js (Javascript) 回调的简单理解
- windows winhttp的编程例子,但是头文件和库文件,我的机子环境上没有,只有下载了头文件和库文件后才可以使用。
- 移动端/PC端网页开发建议
- 安卓ViewPager无限滑动