当前位置:网站首页>【刷题记录】16. 最接近的三数之和
【刷题记录】16. 最接近的三数之和
2022-07-20 19:36:00 【InfoQ】
一、题目描述
输入:nums = [-1,2,1,-4], target = 1
输出:2
解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。
输入:nums = [0,0,0], target = 1
输出:0
- 3 <= nums.length <= 1000
- -1000 <= nums[i] <= 1000
- -104 <= target <= 104
二、思路分析
排序 + 双指针
sum == 0
sum == target
target
- 根据 sum = L + nums[i] + R 的结果,判断 sum 与目标 target 的距离,如果更近则更新结果 res
- 判断 sum 与 target 的大小关系时,因为数组有序,如果 sum > target 则 R--,如果 sum < target 则 L++,如果 sum == target 则说明距离为 0 直接返回结果
三、代码实现
class Solution {
public int threeSumClosest(int[] nums, int target) {
Arrays.sort(nums);
//初始化一个res
int res = nums[0] + nums[1] + nums[2];
for (int i = 0; i < nums.length; i++) {
//去重
if (i > 0 && nums[i] == nums[i - 1]) continue;
int R = i + 1, L = nums.length - 1;
while (R < L) {
int sum = nums[R] + nums[L] + nums[i];
if (Math.abs(target - sum) < Math.abs(target - res))
res = sum;
if (sum > target)
L--;
else if (sum < target)
R++;
else
return res;
}
}
return res;
}
}
复杂度分析
n
L
R
n
运行结果

总结
边栏推荐
- 白宫正设法推动填补美国数十万个网络安全工作岗位
- Win11 22H2怎么卸载更新补丁?Win11 22H2卸载更新补丁的步骤
- Help enterprises' digital upgrading, and volcano engine releases cloud growth solutions
- 海思AI芯片(Hi35XX): 图像jpg转.bgr升级版
- truncate 与 delete 有何不同
- HSPF(Hydrological Simulation Program Fortran)模型
- 牛客题目——判断一个链表是否为回文结构、数据流中的中位数、PriorityQueue的常用方法
- 微信小程序怎么测试
- 低代码平台搭建跨部门沟通系统案例分析
- Know and use log tool Loki
猜你喜欢
随机推荐
Map和Set知识点
Is it OK to open an account with flush? Is it safe?
Content requirements of detailed design specification
oh my god
5款经典代码阅读器的使用方案对比
利用dump文件反向定位崩溃位置的体会
STL 笔记(十四):函数对象
Uses of mysqladmin, mysqldump, mysqlslap, mysqlshow, mysqlcheck client programs
Mysql数据库查询好慢,除了索引,还能因为什么?
Multi active architecture of King glory mall
STL notes (XIV): function object
Help enterprises' digital upgrading, and volcano engine releases cloud growth solutions
IO file input / output stream
CENTURY模型可以模拟土壤呼吸吗?CENTURY模型实践技术应用与案例分析
Hisilicon AI chip (hi35xx): image JPG to BGR upgrade
Know and use log tool Loki
Ireport export PDF font bold failure
关于 MySQL 的酸与 MVCC 和面试官小战三十回合
Fuzzy query placeholder
哎,系统分析师下午没过