4Sum
来源:互联网 发布:淘宝严查刷单时间 编辑:程序博客网 时间:2024/05/18 01:45
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.
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)思路同3Sum
vector<vector<int> > fourSum(vector<int> &num, int target) { vector<vector<int> > vecall; vector<int> vec; sort(num.begin(), num.end()); for(int i = 0; i < (int)num.size() - 3; i++){ if(i > 0 && num[i] == num[i-1]) continue; for(int j = i + 1; j < (int)num.size() - 2; j++){ if(j > i +1 && num[j] == num[j-1]) continue; int low = j + 1, high = num.size() - 1; while(low < high){ if(low > j+1 && num[low] == num[low-1]){ low++; continue; } if(high < num.size() - 1 && num[high] == num[high+1]){ high--; continue; } int check = num[i] + num[j] + num[low] + num[high]; if(check == target){ vec.push_back(num[i]); vec.push_back(num[j]); vec.push_back(num[low]); vec.push_back(num[high]); vecall.push_back(vec); vec.clear(); low++, high--; }else if(check > target) high--; else low++; } } } return vecall; }
0 0
- 【Leetcode】4Sum (Sum)
- leetcode 2 sum 3sum 4sum
- 3Sum 3Sum Closest 4Sum
- 3Sum & 3Sum Closest & 4Sum
- 2Sum 3Sum 4Sum
- 3sum、3Sum closet、 4sum
- 3Sum, 3Sum Closest, 4 Sum
- Leetcode 2SUM-3SUM-4SUM
- Leetcode-2sum,3sum,4sum
- leetcode 2 sum & 3 sum & 4 sum
- 4Sum
- 4Sum
- 4Sum
- 4Sum
- 4Sum
- 4Sum
- 4Sum
- 4Sum
- string中c_str()函数的用法
- hdu 2222 Keywords Search(AC 自动机)
- redhat samba
- 浏览器2014官方下载
- UIScrollView--滚动视图
- 4Sum
- Linux内存管理机制学习-1
- 背包问题
- hadoop 1.2.1 安装
- Hive修改表语句
- 面向对象--设计模式概览
- 一个关于webservice的Axis问题 Processing file deploy.wsdd Exception: deploy.wsdd (系统找不到指定的文件。)
- 英语学习平台
- FFmpeg浅尝辄止(四)——音频的解码和编码