16 3Sum Closest(输出距离target最近的三个数的和Medium)
2015-06-23 14:34
281 查看
题目意思:给一个数组,给一个target,找三个数的和,这个和要与target距离最近,输出这个和
思路:这个题比3sum要稍微简单一点,如果需要优化,也可以去重,不过因为结果唯一,我没有去重。
min abs(flag=num[i]+num[j]+num[k]-target),判断条件稍微调整,就是flag>0,则k--
flag<0,则j++,flag=0,则返回target
思路:这个题比3sum要稍微简单一点,如果需要优化,也可以去重,不过因为结果唯一,我没有去重。
min abs(flag=num[i]+num[j]+num[k]-target),判断条件稍微调整,就是flag>0,则k--
flag<0,则j++,flag=0,则返回target
class Solution { public: int threeSumClosest(vector<int>& nums, int target) { int size=nums.size(); if(size<3)return 0; int j,k; int distance,temp,answer; sort(nums.begin(),nums.end()); distance=abs(nums[0]+nums[1]+nums[2]-target); for(int i=0;i<size-2;++i){ j=i+1; k=size-1; while(j<k){ temp=nums[i]+nums[j]+nums[k]; if(distance>=abs(temp-target)){ //加等号,是解决nums长度为3的情况 distance=abs(temp-target); answer=temp; } if(temp-target>0)k--; else if(temp-target<0)j++; else return target; } } return answer; } };
相关文章推荐
- 调试与测试
- 深入了解javascript第一篇实现篇
- ORA-29275 的问题
- CSS Bootstrap简介
- Android.mk添加第三方jar包
- 欢迎使用CSDN-markdown编辑器
- Effective JAVA 思维导图
- Windows环境下npm install常见错误
- fiddler的前端资源代理功能。
- Oracle 全表扫描和聚簇因子
- 17. 解决冲突
- java学习之旅09--char_字符串入门_boolean
- 2015.06.23
- IOS开发 - 判断手机号码是否符合规则
- netstat 的10个基本用法(转)
- ASMCMD 访问错误
- [HDU1789]Doing Homework again[贪心]
- SQL/LINQ/Lamda
- java-计算任意日期所在周、月、年的第一天与最后一天
- 使用easyBCD 安装 Win8 + Ubuntu 13.10 双系统