博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode]16. 3Sum Closest最接近的三数之和
阅读量:6501 次
发布时间:2019-06-24

本文共 1273 字,大约阅读时间需要 4 分钟。

Given an array nums of n integers and an integer target, find three integers in nums such that the sum is closest to target. Return the sum of the three integers. You may assume that each input would have exactly one solution.

Example:

Given array nums = [-1, 2, 1, -4], and target = 1.The sum that is closest to the target is 2. (-1 + 2 + 1 = 2). 这题要求找出三个数的和跟target最接近的,可以跟之前的三数之和类似的方法来处理,同样先确定一个数后再对剩下的两个数使用双指针法 每次根据结果与target的比较结果判断移动头指针还是尾指针,这里注意结果大于target也可能小于target所以要做绝对值的判断
class Solution {    public int threeSumClosest(int[] nums, int target) {        Arrays.sort(nums);        int closestNum = nums[0] + nums[1] + nums[2];        for (int i = 0; i < nums.length - 2; i++) {            int l = i + 1, r = nums.length - 1;            while (l < r){                int threeSum = nums[l] + nums[r] + nums[i];                if (Math.abs(threeSum - target) < Math.abs(closestNum - target)) {                    closestNum = threeSum;                }                if (threeSum > target) {                    r--;                } else if (threeSum < target) {                    l++;                } else {                    return target;                }            }        }        return closestNum;    }}

 

转载于:https://www.cnblogs.com/jchen104/p/10235041.html

你可能感兴趣的文章
TCP协议分析
查看>>
命令补全和别名
查看>>
配置Tomcat架构
查看>>
每隔2 个小时将/etc/services 文件打包备份到/tmp 下(最好每次备份成不同的备份包)...
查看>>
硬盘SMART检测参数详解[转]
查看>>
一篇文章助你理解Python2中字符串编码问题
查看>>
【运维安全】-Fiddler-抓包工具
查看>>
/etc/profile 记录用户登录IP
查看>>
VS2008 编译X64工程出现 error PRJ0003 : 生成 cmd.exe 时出错的解决方案
查看>>
Java 设计模式(1)
查看>>
jquery中的过滤操作
查看>>
RAID简概
查看>>
起点没有选对,想找好的前端工作只能越找越累
查看>>
百度霸屏靠谱吗
查看>>
notepad++ 64位安装json插件JStool
查看>>
MySQL 索引
查看>>
python 代码审计-命令执行漏洞(自己编写的代码)
查看>>
UITableViewCell中的使用cell和cell.contentView的区别
查看>>
composer出现404错误
查看>>
Java : List中 根据map的某个key去重
查看>>