Leetcode-4Sum
来源:互联网 发布:苹果电脑编写代码软件 编辑:程序博客网 时间:2024/06/06 00:42
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>> 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> beta;beta.push_back(nums[0]);beta.push_back(nums[1]);beta.push_back(nums[2]);beta.push_back(nums[3]);ans.push_back(beta);return ans;}}int i, j;int n = nums.size();for (i = 0; i < n - 3; i++) {if (i > 0 && nums[i] == nums[i - 1])continue;for (j = i + 1; j < n - 2; j++) {if (j > i+1 && nums[j] == nums[j - 1])continue;int l = j + 1;int m = n - 1;while (l < m) {int s = nums[i] + nums[j] + nums[l] + nums[m];if (s == target) {vector<int> tmp;tmp.push_back(nums[i]);tmp.push_back(nums[j]);tmp.push_back(nums[l]);tmp.push_back(nums[m]);ans.push_back(tmp);while (nums[l] == nums[l + 1])l++;while (nums[m] == nums[m - 1])m--;l++;m--;}else if (l<m && s < target)l++;else if (l<m && s > target)m--;}}}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
- Android studio使用JNI的的异常的处理(app:compileDebugNdk)
- unix网络编程 环境搭建 环境配置
- 这是 ApiDemo的文档
- 4.extern存储类练习。
- 安卓多线程模板
- Leetcode-4Sum
- 金蝶EAS,编辑界面EditUI必录校验,业务校验,单据头及分录必输校验
- Json对象和Json字符串的区别
- class.c 添加中文注释(1)
- centos 系 为网卡添加带vlan的子接口
- NAT DMZ服务
- Linux下的管道通信
- Socket网络编程学习笔记(2):面向连接的Socket
- FILE **file