18. 4Sum
来源:互联网 发布:p2p网络投资理财 编辑:程序博客网 时间:2024/05/01 00: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.
分析:同3Sum一样的思路,多加了一层循环。
AC代码:
vector<vector<int> > fourSum(vector<int>& nums, int target){ vector<vector<int> > ret; if(nums.size() < 4) return ret; sort(nums.begin(), nums.end()); for(int i = 0; i < nums.size() - 3; ++i ){ if(i == 0 || nums[i] != nums[i - 1]){ int three_tar = target - nums[i]; for(int j = i + 1; j < nums.size() - 2; ++ j){ if(j == i + 1 || nums[j] != nums[j - 1]) { int two_tar = three_tar - nums[j]; for(int p = j + 1, q = nums.size() - 1; p < q;){ if(nums[p] + nums[q] == two_tar){ if(p != j + 1 && nums[p] == nums[p - 1]){ p ++; q --; }else{ vector<int> qua; qua.push_back(nums[i]); qua.push_back(nums[j]); qua.push_back(nums[p]); qua.push_back(nums[q]); ret.push_back(qua); p ++; q --; } }else if(nums[p] + nums[q] < two_tar){ p ++; }else{ q --; } } } } } } return ret;}
0 0
- 15. 3Sum 和 18. 4Sum
- LeetCode --- 18. 4Sum
- [Leetcode] 18. 4Sum
- 18. 4Sum
- 18. 4Sum
- 18. 4Sum
- 18. 4Sum
- 18. 4Sum
- 18. 4Sum
- leetcode 18. 4Sum
- 18. 4Sum
- 18. 4Sum
- 18. 4Sum
- 18. 4Sum LeetCode
- 18. 4Sum
- leetcode 18. 4Sum
- 18. 4Sum
- 18. 4Sum
- 自定义View实现米老鼠时钟
- android从零学(一)
- 照片
- Android基础
- jQuery $.each用法
- 18. 4Sum
- EventBus代替Intent将复杂对象传递给下一个即将启动的Activity
- java io基础
- 机房重构——泛型 or DataTable?
- OPENCV常用小代码
- 映射表操作中的常用数组
- 自定义Cell的Button无法点击
- 极客DIY:用树莓派制作低成本高清监控摄像机
- 帝国cms循环列出所有子栏目名,和当前子栏目下的文章列表和所有栏目信息数