4Sum
来源:互联网 发布:java项目添加log日志 编辑:程序博客网 时间:2024/05/16 04:32
跟求3sum差不多
class Solution {public: vector<vector<int> > fourSum(vector<int> &num, int target) { vector<vector<int> > result; sort(num.begin(), num.end()); for(int i = num.size() - 1; i > 2; i--) { if(i == num.size() - 1 || num[i] != num[i + 1]) { vector<vector<int> > tmp = threeSum(num, i - 1, target - num[i]); for(int k = 0; k < tmp.size(); k++) { tmp[k].push_back(num[i]); result.push_back(tmp[k]); } } } return result; }private: vector<vector<int> > threeSum(vector<int> &num, int end, int target) { int pre = -1; vector<vector<int> > result; for(int i = 0; i <= end; i++) { int temp = num[i]; if(pre != -1 && num[pre] == num[i]) { continue; } pre = i; int low = i + 1, high = end; int val = target - num[i]; while(low < high) { int t = num[low] + num[high]; if(t == val) { vector<int> tmp; tmp.push_back(num[i]); tmp.push_back(num[low]); tmp.push_back(num[high]); result.push_back(tmp); low++; high--; while(low < high && num[low] == num[low - 1]) { low++; } while(low < high && num[high] == num[high + 1]) { high--; } } else if(t < val) { low++; } else { high--; } } } return result; }};
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
- C++语言学习
- 扩频通信——伪随机序列
- 重庆怎么找富婆包养
- MyConcurrService
- 不想使用默认的“配置文件的位置”,那么可以来配置
- 4Sum
- 用Java编写一个小程序:键盘输入圆的半径,求圆的面积
- android Edittext 隐藏系统弹出的键盘
- DialogFragment style设置
- blog-servlet.xml配置文件
- 手机通信基本原理
- UVA - 512 Spreadsheet Tracking
- C++中继承方式与访问标号
- Absolute C++ 2.10题目