题目

给一个包含n个整数的数组S, 找到和与给定整数target最接近的三元组,返回这三个数的和。

样例

例如S = [-1, 2, 1, -4] and target = .  和最接近1的三元组是 -1 + 2 + 1 = 2.

注意

只需要返回三元组之和,无需返回三元组本身

解题

和上一题差不多,程序也只是稍微修改了

public class Solution {
/**
* @param numbers: Give an array numbers of n integer
* @param target : An integer
* @return : return the sum of the three integers, the sum closest target.
*/
public int threeSumClosest(int[] numbers ,int target) {
// write your code here
if(numbers == null)
return 0;
Arrays.sort(numbers);
int sum = Integer.MAX_VALUE ;
int numlen = numbers.length;
for( int i = 0;i< numlen ;i++){
int left = i + 1;
int right = numlen - 1;
while(left < right){
int tmpsum = numbers[i] + numbers[left] + numbers[right];
int tmpdist = tmpsum - target;
sum = Math.abs(tmpdist) > Math.abs(sum - target) ? sum:tmpsum;
if(tmpdist == 0){
return target;
}
if(tmpdist <0){
left++;
}else{
right--;
} }
}
return sum;
}
}

Java Code

总耗时: 1504 ms

class Solution:
"""
@param numbers: Give an array numbers of n integer
@param target : An integer
@return : return the sum of the three integers, the sum closest target.
"""
def threeSumClosest(self, numbers, target):
# write your code here
if numbers == None:
return 0
numlen = len(numbers)
numbers.sort()
sum = 0
for i in range(numlen-1):
left = i + 1
right = numlen - 1
while left < right:
tmpsum = numbers[i] + numbers[left] + numbers[right]
tmpdist = tmpsum - target
if i==0:
sum = tmpsum
sum = sum if abs(tmpdist) > abs(sum-target) else tmpsum
if tmpdist == 0:
return target
if tmpdist < 0:
left +=1
else:
right -=1
return sum

Python Code

总耗时: 403 ms

最新文章

  1. 深入理解python的yield和generator
  2. pbfunc外部函数扩展应用-在Powerbuilder中进行Http的GET、POST操作
  3. WPF中嵌入Office编辑器(支持Word、Excel、PPT、Visio等)
  4. 编写使用SpringSecurity的JUnit测试提醒
  5. poj 2029 二维树状数组
  6. Qt学习总结-ui篇
  7. javascript数据变量类型判断(JS变量是否是数组,是否是函数的判断)
  8. C++学习笔记(六):复杂数据类型(string、容器和STL)
  9. Lunch Time
  10. 批量创建IP方法
  11. NSURLSession 所有的都在这里(一)
  12. jQuery获取父级、兄弟节点的方法
  13. 分布式Snowflake雪花算法
  14. case when then end
  15. c# devexpress 多个窗口
  16. WebAPI项目中使用SwaggerUI
  17. javassist和jdk动态代理
  18. PHP:第二章——PHP中的流程控制语句
  19. mysql索引提高查询速度
  20. 使用C# 开始第一个QQ机器人

热门文章

  1. ClickOnce证书签名
  2. 【Qt】命令行编译Qt程序(nmake)【转】
  3. 使用JavaScript实现弹出层效果
  4. CSS3制作立体导航
  5. php header函数实例代码
  6. html设置360兼容/极速模式
  7. C#项目连接数据库的配置
  8. Swiper简单入门
  9. 收起虚拟键盘的各种方法 -- IOS
  10. AJAX请求遭遇未登录和Session失效的解决方案