LeetCode 016 3Sum Closest
来源:互联网 发布:建立网络连接失败183 编辑:程序博客网 时间:2024/06/10 03:06
Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target. Return the sum of the three integers. You may assume that each input would have exactly one solution.
For example, given array S = {-1 2 1 -4}, and target = 1. The sum that is closest to the target is 2. (-1 + 2 + 1 = 2).
和之前的3sum方法一样 http://blog.csdn.net/xift810/article/details/19175113
有些细节要变化一下:
a 需要有个差值记录器,每当差距缩小的时候,都要记录下来。
b 当3个数总和相同时候,直接输出答案。
c 最开始的差值用系统最大值。
public int threeSumClosest(int[] num, int target) { if(num==null|| num.length<3){return 0;}Arrays.sort(num);int len = num.length;int leaf = Integer.MAX_VALUE;int ans=target;for(int i=0;i<len-2;i++){if(i>0&&num[i]==num[i-1]){continue;}int l = i +1;int r = len-1;while(l<r){int sum= num[i] + num[l] + num[r];if (Math.abs(sum-target)<leaf) { leaf=Math.abs(sum-target);ans = sum;}if(sum==target){return target;}else if(sum < target){do{l++;}while(l<r&&num[l-1]==num[l]);}else{do{r--;}while(l<r&&num[r]==num[r+1]);}}}return ans; }
15.3.1.8 注意
if(sum==target){return target;}
0 0
- LeetCode 016 3Sum Closest
- LeetCode 016 3Sum Closest
- LeetCode 016 3Sum Closest
- [LeetCode]016-3Sum-Closest
- LeetCode 016 3Sum Closest
- LeetCode 016 3Sum Closest
- LeetCode-016 3Sum Closest
- LeetCode: 3 Sum Closest
- leetcode - 3 sum closest
- leetcode 3Sum Closest
- LeetCode: 3Sum Closest
- [Leetcode]3Sum Closest
- Leetcode: 3SUM Closest
- LeetCode 3Sum Closest
- [Leetcode] 3Sum Closest
- LeetCode : 3Sum Closest
- LeetCode 3Sum Closest
- [LeetCode] 3Sum Closest
- 浏览器分类和浏览器核心详解
- clientdataset 更新数据
- import static和import的区别
- <a>标签锚点
- 贪心算法:田忌赛马-HDU1052 & POJ2287 & ZOJ2397
- LeetCode 016 3Sum Closest
- ccs 1.1.0.0 UIlayer内存泄漏的解决(不完整)
- 【PAT 1033】 To Fill or Not to Fill 贪心算法&模拟
- 单例设计模式
- Linux内核个性化配置
- c#索引器
- 为什么需要对applet进行数字签名(digital signature)
- 关于Mysql 中 inner join , left join , right join的区别
- hibernate 由表生成实体类 反向引擎方式