当前位置: 首页 > ai >正文

最接近的三数之和

给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。

返回这三个数的和。

假定每组输入只存在恰好一个解。

示例 1:

输入:nums = [-1,2,1,-4], target = 1
输出:2
解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2)。

示例 2:

输入:nums = [0,0,0], target = 1
输出:0
解释:与 target 最接近的和是 0(0 + 0 + 0 = 0)。

提示:

  • 3 <= nums.length <= 1000
  • -1000 <= nums[i] <= 1000
  • -104 <= target <= 104

数组排序方法sort():

对于nums.sort((a, b) => a - b);

(a, b) => a - b 是排序规则:

  • 如果 a - b 是负数,表示 a 应该排在 b 前面(升序)

  • 如果 a - b 是正数,表示 b 应该排在 a 前面

  • 如果是 0,表示两者相等

代码实现:

/*** @param {number[]} nums* @param {number} target* @return {number}*/
var threeSumClosest = function (nums, target) {nums.sort((a, b) => a - b); // 升序排序let n = nums.length;let closestSum = nums[0] + nums[1] + nums[2]; // 初始化前三个数的和for (let i = 0; i < n - 2; i++) {// 跳过重复的 nums[i]if (i > 0 && nums[i] === nums[i - 1]) {continue;}let left = i + 1;let right = n - 1;while (left < right) {let currentSum = nums[i] + nums[left] + nums[right];// 和等于 targetif (currentSum === target) {return currentSum;}// 更新最接近的和if (Math.abs(currentSum - target) < Math.abs(closestSum - target)) {closestSum = currentSum;}// 移动指针if (currentSum < target) {left++;} else {right--;}}}return closestSum;
};

http://www.xdnf.cn/news/13515.html

相关文章:

  • Java 基础知识填空题(共 10 题)
  • 6.ref创建对象类型的响应式数据
  • FPGA实现VESA DSC编码功能
  • 【游戏项目】大型项目Git分支策略与开发流程设计构想
  • 无人机智能运行系统技术解析
  • 为进行性核上性麻痹患者定制:饮食健康指南
  • 全球首个体重管理AI大模型“减单”发布,学AI大模型来近屿智能
  • CMake指令: add_sub_directory以及工作流程
  • 速盾:高防CDN可以加速数据库吗?
  • ​​5G通信设备线路板打样:猎板PCB如何攻克高速数据传输技术瓶颈​​
  • bat 批处理查看文件年龄
  • C51 KEIL使用使用问题处理
  • Java异步编程深度解析:从基础到复杂场景的难题拆解
  • K8S中应用无法获取用户真实ip问题排查
  • 数据链抗干扰
  • DNS小结
  • 避免在 iOS 和 Android 的 WebView 中长按出现复制框等默认行为
  • 手机解压 7z 文件全攻略
  • 【全志V821_FoxPi】2-2 切换为spi nand方案启动
  • HTML5 浮动
  • 统计可分解整数的数量
  • leetcode1584. 连接所有点的最小费用-medium
  • 2025低空经济区的安全与应急控制专题研讨会(SECOLZ 2025)
  • DDoS攻防实战:从应急脚本到AI云防护系统
  • 2025年智慧城市与管理工程国际会议(ICSCME 2025)
  • 第二章——线性表之循环链表、静态链表
  • 机械ERP需要解决的几个问题?关于非标机械行业物料编码,如何提升建立效率的说明!
  • 【深度学习】深度学习中的张量:从多维数组到智能计算单元
  • GO语言使用gorm的dbresolver插件实现数据库读写分离
  • iOS开发申请组播/广播权限​