leetcode18 4Sum
来源:互联网 发布:写作的软件 编辑:程序博客网 时间:2024/06/06 20:16
题意:一个数组中,找出4个数之和为指定target的。
分析:又是一类超经典的数组中找和为某数的组合问题,一般通过定数扫描的方法可以减少一阶复杂度,4个数的话就可以先固定头两个数再扫描,注意解不要重复,按数字来扫不要按位扫就好。
AC:
class Solution {public: vector<vector<int>> fourSum(vector<int>& nums, int target) { vector<vector<int>> res; int s=nums.size(); sort(nums.begin(),nums.end()); int i,j; for(int m=0;m<s-2;m++) { if(m>0&&nums[m]==nums[m-1]) continue; for(int n=m+1;n<s-1;n++) { if(n>m+1&&nums[n]==nums[n-1]) continue; i=n+1; j=s-1; while(i<j) { if(nums[i]+nums[j]+nums[m]+nums[n]>target) j--; else if(nums[i]+nums[j]+nums[m]+nums[n]<target) i++; else { while(nums[i]==nums[i+1] && i<j) i++; while(nums[j]==nums[j-1] && i<j) j--; res.push_back({nums[m],nums[n],nums[i],nums[j]}); i++;j--; } } } } return res; }};
阅读全文
0 0
- [LeetCode18]4Sum
- LeetCode18:4Sum
- leetcode18 4sum
- LeetCode18:4Sum
- [LeetCode18]4Sum
- LeetCode18. 4Sum
- leetcode18. 4Sum
- leetcode18:4Sum
- leetcode18~4Sum
- LeetCode18. 4Sum
- leetcode18. 4Sum
- leetcode18. 4Sum
- leetcode18 4Sum
- leetcode18. 4Sum
- LeetCode18. 4Sum
- leetcode18:4Sum(15-10-6)
- Leetcode1.Two Sum+LeetCode15.3Sum+LeetCode18. 4Sum【K-Sum问题】
- leetcode18
- Java(2-2)
- 百度编辑器(UEditor)调用上传图片、上传文件等模块,并修改图片、文件的保存路径
- 运维的划分
- Hibernate 中出现 xxx表 is not mapped xxx的问题
- 画图
- leetcode18 4Sum
- 【C#】身份证本地验证
- Struts执行流程
- Session和Cookie的对比
- 回调
- POI实现导出Excel数据工具类
- 腾讯手QQ核心技术-NDK开发语音消息变声功能-动脑学院
- 史上最全储能系统优缺点梳理
- 数据算法-hadoop3 TopN