18 4Sum(寻找四个数之和为指定数的集合Medium)
2015-06-23 15:26
381 查看
题目意思:给一个乱序数组,在里面寻找三个数之和为target的所有情况,这些情况不能重复,增序排列
思路:采用3Sum的做法
ps:有见一种用hash的,存任意两个元素的和,然后变成3sum问题,需要判断重复
图书馆的网,已经到了令人发指的程度,我告诫自己千万不要暴躁。
思路:采用3Sum的做法
ps:有见一种用hash的,存任意两个元素的和,然后变成3sum问题,需要判断重复
图书馆的网,已经到了令人发指的程度,我告诫自己千万不要暴躁。
class Solution { public: vector<vector<int>> fourSum(vector<int>& nums, int target) { vector<vector<int>> ans; vector<int> vec(4); int k,l,temp; sort(nums.begin(),nums.end()); for(int i=0;i<nums.size();++i){ if(i>0&&nums[i]==nums[i-1])continue; for(int j=i+1;j<nums.size();++j){ if(j>i+1&&nums[j]==nums[j-1])continue; k=j+1; l=nums.size()-1; while(k<l){ if(k>j+1&&nums[k]==nums[k-1]){ ++k; continue; } temp=nums[i]+nums[j]+nums[k]+nums[l]; if(temp>target)--l; else if(temp<target)++k; else{ vec[0]=nums[i]; vec[1]=nums[j]; vec[2]=nums[k]; vec[3]=nums[l]; ans.push_back(vec); --l; ++k; } } } } return ans; } };
相关文章推荐
- Oracle trunc()函数的用法
- 爬虫实例4——发微博
- Win10桌面版已收尾 微软全面转战移动版操作系统
- linux 更改环境变量
- mysql:Plugin 'FEDERATED' is disabled.
- 1018. Public Bike Management (30)
- Nodejs服务器管理模块forever
- 在使用ICSharpCode.SharpZipLib进行目录压缩后,再解压缩是提示这个错误Size mismatch: 4294967295;126976 70202;126976
- 设置按钮的位置
- 安全测试 IBM APPSCAN 01
- linux 通过shell操作串口
- 在C#中利用SharpZipLib进行文件的压缩和解压缩收藏
- 希腊字母读音表
- Java Object.wait()方法
- mac系统安装Ionic
- excel制作甘特图(excel2010)
- java加载class文件(类加载机制)
- gcc 编译器[-Wreorder]问题
- 未能加载文件或程序集“Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed”或它的某一个依赖项。
- 工作日志:centos6.5下配置Nginx以轮询方式HTTP+TCP负载均衡