18. 4Sum--Array--LeetCode--C++
来源:互联网 发布:linux oracle服务状态 编辑:程序博客网 时间:2024/05/01 09:13
99ms, 43%
class Solution {public: vector<vector<int>> fourSum(vector<int>& nums, int target) { vector<vector<int>> ret; int sz = nums.size(); if(sz < 4) return ret; std::sort(nums.begin(), nums.end()); /* // 不需要了 if((nums[0] == 0) && (nums[1] == 0) && (nums[2] == 0) && (nums[3] == 0)) { vector<int> curr; curr.push_back(0); curr.push_back(0); curr.push_back(0); curr.push_back(0); ret.push_back(curr); return ret; } */ for(int i = 0; i < sz - 3; ++i) // O(N3) { if(i > 0 && nums[i] == nums[i - 1]) // 跳过重复的nums[i] continue; for(int j = i + 1; j < sz - 2; ++j) // O(N3) { if(j > i + 1 && nums[j] == nums[j - 1]) // 跳过重复的nums[j] continue; int k = j + 1; int l = sz - 1; while(k < l) // O(N3) { int sum = nums[i] + nums[j] + nums[k] + nums[l]; if(sum == target) { vector<int> curr; curr.push_back(nums[i]); curr.push_back(nums[j]); curr.push_back(nums[k]); curr.push_back(nums[l]); ret.push_back(curr); do{++k;} while(k < l && nums[k] == nums[k - 1]);// 跳过重复的nums[k] do{--l;} while(k < l && nums[l] == nums[l + 1]);// 跳过重复的nums[l] } else if(sum < target) { ++k; } else if(sum > target) { --l; } } } } return ret; }};
0 0
- leetcode.array--18. 4Sum
- LeetCode[Array]---- 4Sum
- LeetCode--Array---4Sum
- 18. 4Sum leetcode (array) 总结
- 18. 4Sum--Array--LeetCode--C++
- LeetCode[Array]----3Sum
- 15.3sum leetcode(array)
- C实现 LeetCode->4Sum
- Leetcode c语言-4Sum
- 【C++】【LeetCode】15. 3Sum & 16. 3Sum Closest & 18. 4Sum
- Leetcode - Pointers/Array - Two sum
- LeetCode[Array]----3Sum Closest
- LeetCode: Split Array Largest Sum
- 1.Two Sum leetcode(array)
- LeetCode-Array-1. Two Sum
- [Leetcode] Split Array Largest Sum
- LeetCode刷题【Array】 Two Sum
- leetcode.array--1. Two Sum
- MindManager中的时间轴模板该怎样用好
- 本日小结
- Android Tool
- Android 文件保存getFilesDir()丶getCacheDir()、getExternalFilesDir() 等操作方法探索
- js循环绑定控件
- 18. 4Sum--Array--LeetCode--C++
- 性能优化之图片地图
- 浅谈HTTP中Get与Post的区别
- 线性表的线性存储结构
- 1042. 字符统计(20)
- js获取URL传值参数
- 树莓派安装mysql
- C#中的委托Delegate
- Dragonbaord 410c Python交互设计(1)——天气预报demo界面搭建