【leetcode】3Sum Closest
2013-10-08 02:13
309 查看
class Solution { public: int threeSumClosest(vector<int> &num, int target) { // Note: The Solution object is instantiated only once and is reused by each test case. int ans; bool first=true;//第一个3元组 sort(num.begin(),num.end());//sort,O(n*logn) for(int i=0;i<=num.size()-3;i++)//O(n) {//允许3元组中有重复的数字,这点和3Sum不一样 int sta=i+1,end=num.size()-1; while(sta<end)//O(n) { int sum=num[i]+num[sta]+num[end]; if(first)//更新ans { ans=sum; first=false; } else { ans=(abs(target-ans)<abs(target-sum))?ans:sum; } if(ans==target)//处理返回情况时,是ans与target比较 return ans; else if(sum<target)//注意此处缩小范围时,是sum与target比较 sta++; else end--; } } return ans; } };
相关文章推荐
- 【强烈推荐】《剑指Offer:名企面试官精讲典型编程题》一书中IT名企经典面试
- 关于android service
- 百度2014校园招聘-研发工程师笔试题
- Thrift 使用方法
- UVA - 10780 Again Prime? No Time.
- 计算任意位数的Pi
- 【leetcode】3Sum
- 在旋转后的排序数组中进行查找
- void及void指针含义的深刻解析
- [ios前端开发笔记]使用scrollView进行分页
- 一个string类的几个函数
- 大心得。。。
- js比较运算符==与===的区别
- C++测试小记(1)——array1d(int n, T val=T()) vs array1d(int n, T val=T(0))
- 经典JS序幕
- 7-11
- 人性文化的底层
- javascript实现动态表格的换行变色
- How to find duplicate rows with SQL
- 经典JS-序列号