Leetcode 15. 3Sum
2016-03-17 21:08
260 查看
//开始想用hash,后来发现还是超时了,于是还是考虑排序后计算,反正 //不可能比n平方更短,所以排序对于世界上来首无所谓 class Solution { public: vector<vector<int>> threeSum(vector<int>& nums) { vector<vector<int>> v; if(nums.size()<3) return v; sort(nums.begin(),nums.end()); for(int i=0;i<nums.size()-2;i++) { if(nums[i]>0) break; if(i!=0&&nums[i]==nums[i-1]) continue; for(int j=i+1,k=nums.size()-1;j<k;) { if(nums[k]<0) break; if(nums[i]+nums[j]+nums[k]==0) { v.push_back({nums[i],nums[j],nums[k]}); while(j<k&&nums[j+1]==nums[j]) j++; while(j<k&&nums[k-1]==nums[k]) k--; j++; k--; } else if(nums[i]+nums[j]+nums[k]<0) j++; else k--; } } return v; } };
相关文章推荐
- Codeforces Round #345 (Div. 1) E Clockwork Bomb
- leetcode:Add Digits 【Java】
- centos7+redis+php环境配置
- CVE-2014-0282
- SQL SERVER 中的事务
- Adapter适配器
- 复利感想
- wicket基础应用(2)--wicket表单控件的使用
- ab测试工具
- Window parent 属性
- POJ 2354 大地坐标系
- python学习 函数式编程
- cs231n Lecture 2
- 如何搭建sonar
- python qt
- 响应式布局要点
- Javascript字符串模板处理
- 访问限制
- 倒排索引-搜索引擎的基石
- leetcode111.MinimumDepthofBinary Tree