16. 最接近的三数之和 3Sum Closest
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.
Input: nums = [-1,2,1,-4], target = 1
Output: 2
Explanation: The sum that is closest to the target is 2. (-1 + 2 + 1 = 2).
方法和15题三数之和类似
也是利用双指针法
public int threeSumClosest(int[] nums, int target) { int n = nums.length; Arrays.sort(nums); int min = Integer.MAX_VALUE; int sum = 0; for (int first = 0; first < n; first++) { if (first > 1 && nums[first] == nums[first - 1]) { continue; } int dst = target - nums[first]; int third = n - 1; for (int second = first + 1; second < n; ) { if (nums[second] + nums[third] + dst > target && second < third) { if (min > Math.abs(nums[second] + nums[third] - dst)) { min = Math.abs(nums[second] + nums[third] - dst); sum = nums[second] + nums[third] + nums[first]; } third--; } else if (nums[second] + nums[third] == dst) { return target; } else { if (min > Math.abs(nums[second] + nums[third] - dst)) { min = Math.abs(nums[second] + nums[third] - dst); sum = nums[second] + nums[third] + nums[first]; } second++; } } } return sum; }
参考链接:
https://leetcode.com/problems/3sum-closest/
https://leetcode-cn.com/problems/3sum-closest
分类:
leetcode
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具