Leetcode[18]-4Sum
来源:互联网 发布:datagridview绑定数据 编辑:程序博客网 时间:2024/04/26 03:57
Link: https://leetcode.com/problems/4sum/
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.
分析:和上道题有点类似,多了一层循环,注意该循环的条件就行.
class Solution {public: vector<vector<int> > fourSum(vector<int>& nums, int target) { vector<vector<int> > result; int n = nums.size(); sort(nums.begin(),nums.end()); for(int i = 0; i < n; i++) { if(i>0 && nums[i] == nums[i-1]) continue; for(int j = i+1; j < n; j++){ if(j > i+1 && nums[j]== nums[j-1]) continue; fourNumber(nums,result,i,j,target); } } return result; } void fourNumber(vector<int> & nums,vector<vector<int> > &results, int curIndex1,int curIndex2,int target){ int i = curIndex2 + 1; int j = nums.size()-1; while(i<j) { if(nums[curIndex1] + nums[curIndex2] + nums[i] + nums[j] < target ) i++; else if(nums[curIndex1] + nums[curIndex2] + nums[i] + nums[j] > target ) j--; else { vector<int> vec; vec.push_back(nums[curIndex1]); vec.push_back(nums[curIndex2]); vec.push_back(nums[i]); vec.push_back(nums[j]); results.push_back(vec); i++,j--; while(i < j && nums[i] == nums[i-1])i++; while(j > i && nums[j] == nums[j+1])j--; } } }};
0 0
- LeetCode 18: 4Sum
- [leetcode 18] 4Sum
- [leetcode] 18 4Sum
- leetcode.18--------------4Sum
- leetcode 18 4Sum
- LeetCode---(18) 4 Sum
- 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||4 Sum
- Android控件整理
- OpenCV+Android开发配置
- UVA11991--Easy Problem from Rujia Liu?
- 32位和64位各变量字节数
- Toast的简化用法
- Leetcode[18]-4Sum
- STM32M4_HSE_CLK
- 20150526数据编码_练习
- Echoprint系列--Android编译与调用
- adb logcat打印log丢失
- 【hadoop】5004-Hadoop2.x 集群搭建步骤
- Xcode 6.1 做ipa企业级分发(In-House模式)详细步骤
- sql server2008 安全性管理机制
- Linux inotify功能及实现原理