18. 4Sum
来源:互联网 发布:淘宝隐藏优惠卷 编辑:程序博客网 时间:2024/05/21 14:44
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:
- Elements in a quadruplet (a,b,c,d) must be in non-descending order. (ie, a ≤ b ≤ c ≤ d)
- 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) { sort(nums.begin(), nums.end()); vector<vector<int>> result; vector<int> temp; int len = nums.size(); int i =0; while(i <len-3){ int j = i+1; while(j < len-2){ int k = j +1, w = len-1; while(k <w) { int sum = nums[i] + nums[j] + nums[k] + nums[w]; if(sum==target) { temp.push_back(nums[i]); temp.push_back(nums[j]); temp.push_back(nums[k]); temp.push_back(nums[w]); result.push_back(temp); temp.clear(); k++; w--; while(k < w && nums[k]==nums[k-1]) k++; while(k < w && nums[w]==nums[w+1]) w--; }else if(sum < target) { k++; while(k < w && nums[k]==nums[k-1]) k++; }else { w--; while(k < w && nums[w]==nums[w+1]) w--; } } j++; while(j < len-2 && nums[j]==nums[j-1]) j++; } i++; while(i < len-3 && nums[i]==nums[i-1]) i++; } return result; }};
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
- plsql远程访问数据库 解决ora-12541:TNS:无监听程序
- 05-树7 堆中的路径 (25分)
- SpringMVC 过滤参数的非法字符
- 多数据源的配置
- 【9】-互联网公司技术型面试需要的素质
- 18. 4Sum
- android toast自定义显示时间
- OpenSSH ARM移植
- 欢迎使用CSDN-markdown编辑器
- 常见Sort排序算法总结,人生第一帖
- Log4j调试
- Error:Execution failed for task ':app:transformClassesWithDexForUmengDebug'.
- Go语言实现工时计算
- docker入门时碰到的代理设置问题