LeetCode题解——3Sum
2015-07-12 22:11
330 查看
iven an array S of n integers, are there elements a, b, c in S such that a + b + c =
0? Find all unique triplets in the array which gives the sum of zero.
Note:
Elements in a triplet (a,b,c) must be in non-descending order. (ie, a ≤ b ≤ c)
The solution set must not contain duplicate triplets.
[/code]
0? Find all unique triplets in the array which gives the sum of zero.
Note:
Elements in a triplet (a,b,c) must be in non-descending order. (ie, a ≤ b ≤ c)
The solution set must not contain duplicate triplets.
For example, given array S = {-1 0 1 2 -1 -4}, A solution set is: (-1, 0, 1) (-1, -1, 2)
class Solution { public: int max(int a,int b){return a>b?a:b;} int min(int a, int b){return a<b?a:b;} public: vector<vector<int>> threeSum(vector<int>& nums) { vector<vector<int>> ans; sort(nums.begin(),nums.end()); for(int i=0; i<nums.size();i++) { if (i == 0 || (i > 0 && nums[i] != nums[i-1])) { int lo = i+1; int hi = nums.size()-1; int target = -nums[i]; while(lo<hi) { if(nums[lo]+nums[hi]==target){ vector<int> t; t.push_back(nums[i]); t.push_back(nums[lo]); t.push_back(nums[hi]); ans.push_back(t); while(lo<hi&&nums[lo]==nums[lo+1]) lo++; while(lo<hi&&nums[hi]==nums[hi-1]) hi--; lo++;hi--; } else if(nums[lo]+nums[hi]>target) hi--; else lo++; } } } return ans; } /* vector<vector<int>> threeSum(vector<int>& nums) { vector<vector<int>> ans; set<int> iset(nums.cbegin(),nums.cend()); for(int i=0; i<iset.size();i++) { for(int j=i+1;j<iset.size();j++) { int target = -nums[i]-nums[j]; if(iset.find(target)!=iset.end()){ vector<int> t; int d1,d2; d1=max(max(nums[i],nums[j]),target); d2=min(min(nums[i],nums[j]),target); t.push_back(d2); t.push_back(-d1-d2); t.push_back(d1); ans.push_back(t); } } } return ans; }*/ };
[/code]
相关文章推荐
- 1133搜索(三)
- apache的开源项目-模板引擎(Velocity)_学习了两天就上手啦_源码下载
- 左旋转字符串
- Unity5.1 新的网络引擎UNET(三) UNET NetworkManager
- Linux 二进制包安装MySQL的一些问题
- 蓝牙
- codeforces 534B Covered Path-思维
- mysql中的事务回滚
- Unity5.1 新的网络引擎UNET(一) 概括2
- canvas加载图像
- The import javax.servlet.http.HttpServletRequest cannot be resolved
- JAVA大数处理(BigInteger,BigDecimal)
- Unity5.1 新的网络引擎UNET(七) UNET 单人游戏转换为多人
- 算法三之归并排序
- 使用Genymotion调试出现错误INSTALL_FAILED_CPU_ABI_INCOMPATIBLE解决办法
- service group
- Android 4.4以后设置状态栏颜色
- Puppet基于Master/Agent模式实现LNMP平台部署 推荐
- akoj-1319-四方定理
- 脚本重定向输出【错误、正确】——分析service脚本中用到的语法