LeetCode | 18. 4Sum
来源:互联网 发布:手机密码下载软件 编辑:程序博客网 时间:2024/06/14 07:11
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]]
跟2Sum 3Sum类似,用两个指针left , right 在后面遍历一遍,复杂度 O(n^3)
55ms Ac
class Solution {public: vector<vector<int>> fourSum(vector<int>& nums, int target) { vector<vector<int> > res; vector<int> tmp; 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 left = j+1, right = len-1; while(left < right) { int sum = nums[i]+nums[j]+nums[left]+nums[right]; if(sum == target)//找到目标 { tmp.push_back(nums[i]); tmp.push_back(nums[j]); tmp.push_back(nums[left]); tmp.push_back(nums[right]); res.push_back(tmp); while(left<len-1 && nums[left]==tmp[2])//不这样比较容易陷入死循环:因为left/right可能会没有移动 { left++; } while(right>=1 && nums[right]==tmp[3]) { right--; } tmp.clear(); } else if(sum < target) { left++; } else { right--; } while(j+1<len && nums[j]==nums[j+1]) { j++; } } } while(i+1<len && nums[i]==nums[i+1]) { i++; } } return res; }};
1 0
- LeetCode --- 18. 4Sum
- [Leetcode] 18. 4Sum
- leetcode 18. 4Sum
- 18. 4Sum LeetCode
- leetcode 18. 4Sum
- 【LeetCode】18. 4Sum
- LeetCode - 18. 4Sum
- leetcode 18. 4Sum
- Leetcode 18. 4Sum
- LeetCode 18. 4Sum
- 【leetcode】18. 4Sum
- leetcode 18. 4Sum
- [leetcode]18. 4Sum
- leetcode 18. 4Sum
- leetcode 18. 4Sum
- leetcode 18. 4Sum
- [LeetCode] 18. 4Sum
- LeetCode 18. 4Sum
- Linux误删C基本运行库libc.so.6急救方法
- 199. Binary Tree Right Side View | 从右边看二叉树得到的集合
- Lumen中使用JWT-Auth刷新token实现方式
- 欢迎使用CSDN-markdown编辑器
- react-native 实现条码扫描(ios&android)
- LeetCode | 18. 4Sum
- 完美解决 ERROR 1064 (42000): You have an error in your SQL syntax ... near …
- 动态规划练习06:登山
- SSM+JQuery+Ajax登录验证
- Android App 沉浸式状态栏解决方案
- Makefile的作用
- java并发包:生产者消费者模式
- 如何使用阿里百川hotfix热修复功能(二)
- 文章标题 CSU 1843: Jumping monkey (状态压缩+dp)