LeetCode 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.
Example 1:
复制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).
Constraints:
3 <= nums.length <= 10^3
-10^3 <= nums[i] <= 10^3
-10^4 <= target <= 10^4
实现思路:
找到三个数的和使其最接近目标数,和15题一样同属于双指针题,不详细赘述了。
class Solution {
public:
int threeSumClosest(vector<int>& nums, int target) {
int minGap=0x3fffffff,res;
sort(nums.begin(),nums.end());
for(int i=0; i<nums.size(); i++) {
if(i>0&&nums[i]==nums[i-1]) continue;
int j=i+1,k=nums.size()-1;
while(j<k) {
int ansVal=(nums[i]+nums[j]+nums[k]);
if(abs(ansVal-target)<minGap) {
minGap=abs(ansVal-target);
res=ansVal;
}
if(ansVal<target) j++;//总和小于目标数的时候说明 可以让j++缩短差距
else k--;
}
}
return res;
}
};
标签:
LeetCode题库
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,携手博客园推出1Panel与Halo联合会员
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次 .NET某固高运动卡测试 卡慢分析
· 微服务架构学习与思考:微服务拆分的原则
· 记一次 .NET某云HIS系统 CPU爆高分析
· 如果单表数据量大,只能考虑分库分表吗?
· 一文彻底搞懂 MCP:AI 大模型的标准化工具箱
· .NET 阻止Windows关机以及阻止失败的一些原因
· 博客园2025新款「AI繁忙」系列T恤上架
· Avalonia跨平台实战(二),Avalonia相比WPF的便利合集(一)
· C# LINQ 快速入门实战指南,建议收藏学习!
· Redis实现高并发场景下的计数器设计