4 Sum -Leetcode
来源:互联网 发布:网络环境被劫持 编辑:程序博客网 时间:2024/05/29 19:40
题意:
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的做法。这里是先依次固定一个数字,然后按照3Sum的做法来做。
class Solution {public: vector<vector<int>> fourSum(vector<int>& nums, int target) { vector<int> num(nums); sort(num.begin(),num.end()); vector<vector<int> > result; set<vector<int> > res; if(num.size()<4) return result; //先固定数组中的一个数字,注意数字的范围是[0,num.size()-3),因为这里要以一个固定的数字为基础随后进行3Sum的操作。 for(int i=0;i<num.size()-3;i++) { if(i&&num[i]==num[i-1]) continue; //在固定数字之后的范围里进行3Sum的操作 for(int j=i+1;j<num.size()-2;j++) { if(j>i+1&&num[j]==num[j-1]) continue; int p=j+1; int q=num.size()-1; while(p<q) { int n=num[i]+num[j]+num[p]+num[q]; if(n==target) { vector<int> vec{num[i],num[j],num[p],num[q]}; sort(vec.begin(),vec.end()); res.insert(vec); p++; q--; } else if(n<target) p++; else q--; } } } result=vector<vector<int> >(res.begin(),res.end()); return result; }};
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
- Swift基本语法
- 014.Module Operator 模运算
- CentOS 7 下安装 NS2
- jQuery unbind() 方法
- java中 == 和 equals
- 4 Sum -Leetcode
- PHP操作MongoDB数据库
- LeetCode 96: Unique Binary Search Trees
- c++ 虚函数的实现机制
- 013.Division Operator 除法运算
- mysql 授权管理和设置
- iOS瀑布流
- 解决Android SDK Manager无法更新
- 012.Auto Promote 表达式类型自动提升