leetcode---4Sum
来源:互联网 发布:js 数组包含复杂对象 编辑:程序博客网 时间:2024/06/14 00:59
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) { vector<vector<int>> ans; sort(nums.begin(), nums.end()); if(nums.size() < 4) return ans; if(nums.size() == 4) if(nums[0] + nums[1] + nums[2] + nums[3] == target) { vector<int> tmp; tmp.push_back(nums[0]); tmp.push_back(nums[1]); tmp.push_back(nums[2]); tmp.push_back(nums[3]); ans.push_back(tmp); return ans; } int a, b; int n = nums.size(); for(int i=0; i<n-3; i++) { if(i>0 && nums[i] == nums[i-1]) continue; for(int j=i+1; j<n-2; j++) { if(j>i+1 && nums[j] == nums[j-1]) continue; int l = j + 1; int r = n - 1; while(l < r) { int s = nums[i] + nums[j] + nums[l] + nums[r]; if(l<r && s < target) l++; else if(l<r && s > target) r--; else { vector<int> tmp; tmp.push_back(nums[i]); tmp.push_back(nums[j]); tmp.push_back(nums[l]); tmp.push_back(nums[r]); ans.push_back(tmp); while(nums[l] == nums[l+1]) l++; while(nums[r] == nums[r-1]) r--; l++; r--; } } } } return ans; }};
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
- Navicat for Mysql连接mysql数据库时出现 2003-Can't connect to MySql server on 'localhost'(10061)
- 10 11周 补充 项目二(2)
- MFC编程之文件对话框
- IntentService源码分析
- 使用sqlldr导入文本数据到oracle
- leetcode---4Sum
- 关于SQLite 与 FireBird 利弊分析
- java中class.forName和classLoader加载类的区分
- hdu2097
- VPN连接错误代码:691如何解决
- 使用Wireshark深入学习TCP三次握手
- 圆形的ImageView
- 生成随机数
- 记录进阶之路——自定义view学习一