给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。

例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.

与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).

这里和14是不同就是条件变为与target的距离最小,只要把15中==的条件变为本题所要求的的就好了,其他趋同。
class Solution {
public int threeSumClosest(int[] nums, int target) {
Arrays.sort(nums);
//List<Integer> list = new List<Integer>();
int min_sum = Integer.MAX_VALUE,min_distance = Integer.MAX_VALUE;
for(int i = 0; i < nums.length - 2;i++){
int low = i + 1,high = nums.length - 1;
while(low < high){
int sum = nums[i] + nums[low] + nums[high];//这一句一定要放在while循环里面!!!!
if(Math.abs(sum - target) <min_distance){
min_sum = sum;
min_distance = Math.abs(sum - target);
}
if(sum > target){
high--;
}else{
low++;
}
} }
return min_sum;
}
}

2019-04-14 11:38:26

哎第二次写,第一下想到的还是这种思路(python)

 class Solution:
def threeSumClosest(self, nums: List[int], target: int) -> int:
n = len(nums)
nums.sort()
min_=sys.maxsize
for i in range (n-1):
L = i+1
R=n-1
while L < R:
temp = abs(nums[i]+nums[L]+nums[R]-target)
if temp < min_:
min_=temp
res=nums[i]+nums[L]+nums[R]
elif nums[i]+nums[L]+nums[R]>target:
R-=1
else:
L+=1
return res

2019-11-28 09:09:11

LeetCode--016--最接近的三数之和(java)的更多相关文章

  1. LeetCode:最接近的三数之和【16】

    LeetCode:最接近的三数之和[16] 题目描述 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这 ...

  2. Java实现 LeetCode 16 最接近的三数之和

    16. 最接近的三数之和 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存 ...

  3. leetcode.数组.16最接近的三数之和-java

    1. 具体题目 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存在唯一答案 ...

  4. LeetCode 16. 最接近的三数之和(3Sum Closest)

    题目描述 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存在唯一答案. 例 ...

  5. 【LeetCode】最接近的三数之和【排序,固定k1,二分寻找k2和k3】

    给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存在唯一答案. 例如,给定数 ...

  6. [LeetCode] 16. 最接近的三数之和

    题目链接:https://leetcode-cn.com/problems/3sum-closest/ 题目描述: 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 num ...

  7. LeetCode 16. 3Sum Closest(最接近的三数之和)

    LeetCode 16. 3Sum Closest(最接近的三数之和)

  8. Leetcode题库——16.最接近的三数之和

    @author: ZZQ @software: PyCharm @file: threeSumClosest.py @time: 2018/10/14 20:28 说明:最接近的三数之和. 给定一个包 ...

  9. LeetCode-016-最接近的三数之和

    最接近的三数之和 题目描述:给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只 ...

随机推荐

  1. angularjs实例

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script sr ...

  2. LeetCode 448 Find All Numbers Disappeared in an Array 解题报告

    题目要求 Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice a ...

  3. npm更新指定的组件

    1.例如:react-router已经更新到4.x版本,想要下载2.x版本,可以通过下面命令 npm install --save-dev react-router@2.8.1 或 npm insta ...

  4. TableExport导出失败问题

    本周有一个需求,将一个网页上一个js导出成csv文件,供数据分析使用 找到一个插件,TableExport,可以很方便的将table导出(默认设置的话,仅需一行代码) 但是,这导出文件较大(6.2M) ...

  5. .net ML机器学习中遇见错误记录

    避免入坑: 1.错误提示 numClasses must be at least   2 大概是训练模型的数据分类必须是两种,如下错误: 正确数据集如下:

  6. 20190412 T-SQL语言一

    -- T-SQL ------------------------------------------------------ 例如1 什么是注释符 单行注释select *from kc /*sel ...

  7. java之jedis使用

    下载 依赖jar包下载 使用 # Redis settings redis.host=192.168.208.153 redis.port=6379 redis.pass=1234 redis.tim ...

  8. VUE—打印(原生态网页打印)

    //打印触发的方法 print(e){ let subOutputRankPrin = document.getElementById('printcode'); var options = { fo ...

  9. tiny6410 uboot启动参数的问题

    使用uboot来启动tiny6410,需要在启动参数中加入lcd=S70,才能在lcd上显示正确的画面

  10. 项目中常用的javascript/jquery操作

    1.判断复选框是否被选中? $("#cpuWindow").is(':checked'); 2.设置复选框被选中: $("#cpuWindow").prop(& ...