3Sum Closest
2016-05-09 23:26
274 查看
class Solution { public: int threeSumClosest(vector<int>& nums, int target) { int i,left,right; int n=nums.size(); int sum,difference; difference=0x7ffffff; sort(nums.begin(),nums.end()); for(int i=0;i<n-2;i++) { left=i+1; right=n-1; int temptarget=target-nums[i]; while(left<right) { if(nums[left]+nums[right]==temptarget) return target; else if(nums[left]+nums[right]<temptarget) { int cdifference=abs(nums[left]+nums[right]-temptarget); if(cdifference<difference) { difference=cdifference; sum=nums[i]+nums[left]+nums[right]; } while(left<right&&nums[left+1]==nums[left]) left++; left++; }else { int cdifference=abs(nums[left]+nums[right]-temptarget); if(cdifference<difference) { difference=cdifference; sum=nums[i]+nums[left]+nums[right]; } while(left<right&&nums[right-1]==nums[right]) right--; right--; } } while(i<n&&nums[i+1]==nums[i])i++; } return sum; } };
相关文章推荐
- 指针
- Log4j-1使用说明(比较详细)
- c++第五次上机实验
- 面向对象程序设计第五次作业(修改)
- EL 表达式
- 第2课:通过案例对SparkStreaming 透彻理解三板斧之二:解密:Spark Streaming运行机制和架构解析
- HttpSession笔记
- iOS开发总结(下)
- JavaWeb的MVC设计模式
- Ruby文件操作
- iOS开发获取设备唯一标识、系统版本、应用版本等信息
- Oracle创建、管理撤销表空间
- poj-1201 Intervals(差分约束)
- 支持多个git仓库的配置方法
- [置顶] JSP+Servlet+JavaBean传统方式实现简易留言板制作(注册、登录、留言)
- hdu 1290
- Android6.0运行时权限简介
- 重排链表
- springmvc之log4j
- LINUX内核笔记