[Leetcode] 4Sum
来源:互联网 发布:育碧优化好ea不坑钱 编辑:程序博客网 时间:2024/05/21 06:00
描述
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]]
给定一个数组以及一个目标值,找出所有四元组,它们的和为目标值。
分析
参考 Two Sum 以及 3Sum 这两个问题,其实后一个问题是在前一个问题的基础上加上一层循环,对应的这个问题也是在“3Sum”这个问题的基础上再加一层循环。
建议大家把相关的这几道题目放在一起研究。
代码
class Solution {public: vector<vector<int>> fourSum(vector<int>& nums, int target) { set<vector<int>> res; sort(nums.begin(), nums.end()); for (int l = 0; l < nums.size(); l++) { for (int k = l + 1; k < nums.size(); k++) { int i = k + 1, j = nums.size() - 1, sum = target - nums[l] - nums[k]; while (i < j) { if (nums[i] + nums[j] == sum) res.insert({nums[l], nums[k], nums[i++], nums[j--]}); if (nums[i] + nums[j] < sum) i++; else if (nums[i] + nums[j] > sum) j--; } } } return vector<vector<int> > (res.begin(), res.end()); }};
相关问题
Two Sum
3Sum
3Sum Closest
0 0
- 【Leetcode】4Sum (Sum)
- leetcode 2 sum 3sum 4sum
- Leetcode 2SUM-3SUM-4SUM
- Leetcode-2sum,3sum,4sum
- leetcode 2 sum & 3 sum & 4 sum
- [LeetCode] 2Sum, 3Sum, 4Sum, 3SUm closet
- [LeetCode] K sum(2Sum、3Sum、4Sum)
- leetcode--sum集合:2sum,3sum,4sum
- leetcode --- 2 sum , 3 sum , 4 sum , k sum problem
- LeetCode: 4 Sum
- LeetCode: 4Sum
- LeetCode 4Sum
- Leetcode: 4SUM
- 【leetcode】 4 sum
- LeetCode 4Sum
- leetcode 44: 4Sum
- [Leetcode] 4 Sum [Unsolved]
- 【leetcode】4Sum
- android 测试更新app时 提示“未安装应用程序”
- 在HQL中将查询结果封装入实例化对象
- 新栋BOOK教你学elasticsearch(二)-字段属性
- C程序设计 例题5.11 译密码改进
- PHP程序员最常犯的11个MySQL错误
- [Leetcode] 4Sum
- Item26 Avoid overloading on universal references
- ArrayList源码探险记
- 常见sql注入方式
- Oracle 常用系统字典表
- 关河无尽处,风雪有行人 - 我的2016年总结
- ListView或GridView嵌入ScrollView中时,只显示一个Item并且默认将此Item置顶的问题解决办法
- mysql修改表名,列名,列类型,添加表列,删除表列
- Python 学习笔记-字符串