leetcode解题报告16. 3Sum Closest

从零开始:如何在Windows上搭建Airsim仿真环境(避坑指南) 本文是一份详细的Windows平台AirSim仿真环境搭建指南。文章从硬件要求、Visual Studio与虚幻引擎安装开始,逐步讲解AirSim插件编译、UE项目配置,并重点介绍了通过WSL2连接PX4飞控软件实现软件在环仿真的完整流程。内容涵盖常见问题排查与性能优化,旨在帮助开发者避开常见陷阱,高效构建可用于无人机算法开发的虚拟测试平台。 阅读详情

leetcode解题报告16. 3Sum Closest

题目地址

难度是medium

题目描述

和3SUM问题类似,输入一个整数数组,和一个目标整数target。从数组中选择3个数,使得这三个数之和最接近target。要求返回这三个数之和即可,不要求具体返回是哪三个数。默认有且只有一个解。

我的思路

同样地最简单的方法是三层循环暴力遍历即可。但是这一般不是我们相要的答案。
和3sum问题相比,其实我们可以发现这个问题是比3sum问题更简单的。同样是遍历所有三元组,这个问题不需要考虑三元组去重的问题,而且一旦找到等于target的结果即可返回,不要全部遍历完。
所以可以直接套用解决3sum问题时的遍历办法进行遍历。首先为了更好地遍历,对输入数组进行排序,而且我们假定三元组中元素是升序的,具体遍历时,先固定第一个元素(最小元素),再通过左右指针从数组的头尾分别遍历第二和第三个元素。如果当前结果相对target偏小,那么左指针向右移动,如果偏大,那么右指针向左移动,直到左右指针相遇。在整个遍历过程记录最接近的结果。如果遇到等于target的情况,则可以直接返回。
具体看代码。

我的代码

#include <algorithm>

using namespace std;

class Solution {
public:
    int threeSumClosest(vector<int>& nums, int target) {
        vector<int> my_nums(nums.begin(), nums.end());
        sort(my_nums.begin(), my_nums.end());
        int cur_min = 1000000;
        int ans;
        for (int i = 0; i < my_nums.size() - 2; i++) {
            int left = i + 1;
            int right = my_nums.size() - 1;
            int new_target = target - my_nums[i];
            while (left != right) {
                int cur = new_target - my_nums[left] - my_nums[right];
                if (cur > 0) {
                    left++;
                    if (cur < cur_min) {
                        cur_min = cur;
                        ans = target - cur;
                    }
                } else if (cur < 0) {
                    right--;
                    if (-cur < cur_min) {
                        cur_min = -cur;
                        ans = target - cur;
                    }
                } else {
                    return target;
                }
            }
        }
        return ans;
    }
};

阅读官方题解

没有官方题解,网上题解的思路和我的思路差不多。

思想核心总结

3sum是一类问题,核心是如何高效地遍历三元组。关键点是三元组排序,然后固定第一个元素,对第二和第三个元素通过左右指针从头尾两边向内进行遍历。

部署模型:Libtorch使用笔记【Pytorch的C++版本】【把用Pytorch训练好的模型打包保存为.pt格式,使用Libtorch去加载.pt格式模型,在C++工程中去用就好了】 A : Libtorch是pytorch的C++版本,现在的很多大型项目都是用C++写的,想使用训练好的模型,需要通过caffe等方式去集成,比较麻烦。这里pytorch官方提出了Libtorch,我们就可以把pytorch训练好的模型,打包起来,直接在C++工程中去用就好了,相比较caffe等,非常方便!虽然对于许多需要动态性和易迭代性的场景来说,Python是一种合适且首选的语言,但在同样的情况下,Python的这些特性恰恰是不利的。生产环境是一个需要低延迟和有严格部署要求的领域,一般选择C++。 阅读详情

相关推荐

TSMC40nmLP版图实战:从Design Rule解读到Cadence高效布局布线

本文详细解析了TSMC40nmLP工艺的版图设计实战,从Design Rule解读到Cadence高效布局布线技巧。重点介绍了40nm工艺中的关键设计规则,如最小线宽、间距规则和深N阱规则,并分享了Cadence Virtuoso中的高效工作流和射频模块设计技巧,帮助工程师提升版图设计效率和质量。

weixin_29250403的博客 378

[leetcode] 16. 3Sum Closest 解题报告

题目链接:https://leetcode.com/problems/3sum-closest/ Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target. Return the sum of the three integ

小榕流光的专栏 566

汇川PLC和PLC之间ModebusTCP通讯

然后在全局变量中创建相应的变量关联IW和QW的寄存器创建全部变量//AM402作为主站——读H3U(D12-D21)//AM402作为主站——写给H3U(D200-D209)或者使用数组的方式。

panjinliang066333的博客 3万+

【LeetCode】16. 3Sum Closest 解题报告(Python)

题目分析: 这道题目与3Sum很类似,只是让返回与目标最接近的结果,所以比3Sum难一些,我们可以考虑3Sum的解法同时加入一个变量记录和与目标的差值。 代码说明: 1、这是存储返回的最接近的三个数的和他们与目标的差值 res = nums[0] + nums[1] + nums[2] min_c = abs(target - res) 2、如果差值小于最小差值,更新差值与返回值。 if cha ...

L141210113的专栏 307

DCMM评估报告模板样例

这篇DCMM评估报告对某数据管理公司2020年的数据管理能力进行了全面分析。报告显示,该公司在数据战略方面取得初步进展,但在数据治理和数据架构方面仍存在明显不足,包括缺乏有效治理流程、数据质量监控不足,以及数据标准化和转换灵活性不足等问题。评估报告提出了针对性改进建议,包括完善数据战略、建立治理流程、加强质量监控和提升数据转换灵活性等,为提升数据管理成熟度提供了重要指导。

cdfunlove的博客 166

华为OD机试真题2025双机位A卷 Java&Go 实现【采购订单】

在一个采购系统中,采购申请(PR)需要经过审批后才能生成采购订单(PO)。每个PR包含商品的单价(假设相同商品的单价一定是一样的)及数量信息。系统要求对商品进行分类处理:单价高于100元的商品需要单独处理,单价低于或等于100元的相同商品可以合并到同一采购订单PO中。针对单价低于100的小额订单,如果量大可以打折购买。

MISAYAONE的博客 1259

leetcode(16) 3Sum Closest解题报告

链接:https://leetcode.com/problems/3sum-closest/ 题目:16. 3Sum Closest  Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target. Return th

菜鸟很菜的专栏 667

【赛题解析&命令脚本配置】2023年全国职业院校技能大赛GZ073网络系统管理赛项赛题第10套模块A:网络构建 & (五)网络运维配置+(六)SDN网络配置-命令配置

【赛题解析&命令脚本配置】2023年全国职业院校技能大赛GZ073网络系统管理赛项赛题第10套模块A:网络构建 & (五)网络运维配置+(六)SDN网络配置-命令配置

君逍遥o 810

[Leetcode] 16. 3Sum Closest 解题报告

题目: Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target. Return the sum of the three integers. You may assume that each input would hav

魔豆(Magicbean)的博客 382

YOLOv8改进:卷积篇 | 保姆级探索动态蛇形卷积 (Dynamic Snake Convolution) 的实现与应用

动态蛇形卷积是一种新的卷积操作,它能够更好地捕捉图像中的细节信息。传统卷积核的形状和大小是固定的,而动态蛇形卷积则允许卷积核在不同的位置动态调整其形状,以更好地适应输入数据的特点。这种灵活性使得动态蛇形卷积在处理复杂背景和细节丰富的图像时具有显著优势。我们先定义一个基本的动态蛇形卷积模块。这个模块将作为YOLOv8卷积层的替代。为了全面集成动态蛇形卷积,我们需要修改YOLOv8的模型定义,将所有的基础卷积层替换为我们的SnakeConv模块。

一键难忘的博客 5485

ROS2 - 乐动激光雷达 LD06

STL-06P 主要由激光测距核心,无线传电单元,无线通讯单元,角度测量单元、电机驱动单元和机械外壳组成。STL-06P 测距核心采用 DTOF 技术,可进行每秒 5000 次的测距。每次测距时,雷达发射出红外激光,激光遇到目标物体后被反射到单光子接收单元。

机器人控制与仿真应用 3488

LeetCode 16. 3Sum Closest 题解

本题是三数之和问题的变种,主要考察对排序和双指针技巧的理解和使用。通过排序和双指针,我们可以有效地找到与目标值最接近的三数之和。排序的核心思想是将数组按照升序排列,这样我们可以使用双指针来高效地查找和调整三数之和。双指针的核心思想是:通过移动左指针和右指针,我们可以根据当前和与目标值的关系来调整指针的位置,从而找到最接近的和。这种方法不仅适用于最接近的三数之和问题,还可以应用于许多其他需要查找最接近值的问题。掌握排序和双指针的使用,对于解决这类问题非常重要。

cannonjinx的博客 4297

188、LLC谐振变换器的样机调试实战(EMI测试)

本文分享了LLC谐振变换器EMI调试的实战经验。作者通过300W电源案例,指出LLC的EMI问题主要来自谐振腔共模电流和死区振铃,并提出三板斧解决方案:优化功率回路布局、合理选择共模电感、正确配置X/Y电容。文章详细分析了谐振电容位置、MOSFET走线、变压器屏蔽等关键设计要点,并列举示波器探头、滤波器接地等常见误区。最后强调EMI调试70%依赖布局优化,建议预扫测试、数据记录并保留6dB余量。全文以实际案例贯穿,为LLC电源EMI设计提供了实用指导。

Jack010169的博客 57

【LeetCode】解题16:3Sum Closest

LeetCode解题 16:3Sum Closest Problem 16: 3Sum Closest [Medium]解题思路Solution (Java) Problem 16: 3Sum Closest [Medium] Given an array nums of n integers and an integer target, find three integers in nums s...

Fayedily的博客 197

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

LeetCode:16. 3Sum Closest

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 ass...

Wisimer 172

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

LeetCode总结——从2Sum、3Sum、3Sum Closest、4Sum到kSum

leetcode求和问题描述(K sum problem): 给你一组N个数字(nums), 然后给你一个常数(target) ,我们的目标是在这一堆数里面找到K个数字,使得这K个数字的和等于target。 注意事项(constraints): 注意这一组数字可能有重复项:比如 1 1 2 3 , 求3sum, 然后 target = 6, 你搜的时候可能会得到 两组1 2 3, 1 2 3,1...

vivian_ll的博客 382

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

【LeetCode】16. 3Sum Closest(Python)

Problem 最接近的三数之和 Algorithmic thinking 双指针法 Python3 solution #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ 16. 最接近的三数之和 eg: target=3, list=[1,2,3,1] 最接近的值:1+1+2=4,返回整型数值:4 """ class Solution:...

E.W的博客 1170

leetcode16 3sum-closes

leetcode16 3sum-closest class Solution { public: int threeSumClosest(vector<int>& nums, int target) { int sum = 0; int sum_res = 0; sort(nums.begin(),nums.end());...

逸兴遄飞的专栏 186

LeetCode:16. 3Sum Closest(Medium)

1. 原题链接 https://leetcode.com/problems/3sum-closest/description/ 2. 题目要求 数组S = nums[n]包含n个整数,找出S中三个整数a,b,c,使得a+b+c=sum,sum最接近给定的目标整数target,返回sum。 3. 解题思路 采用与第15题相同的思路(第15题链接),不过要引入两个整型变量min和r...

aysk1112的博客 228

leetcode 16:3Sum Closest with python

import sys class Solution(object): def threeSumClosest(self, nums, target): """ :type nums: List[int] :type target: int :rtype: int """ nums.sort()...

dxcve的博客 200

Leetcode 16. Closest 3 Sum

题目名称:16. Closest 3 Sum 难度:Medium 知识点:双指针 解题思路:这道题特点是只需返回最靠近的三个数字的和,因此我们可以对数组进行排序,排序之后遍历整个数组,其中的每个数字作为第一个数字,求其与目标和的差值,在剩余的数字中寻找最靠近的差值,因为数组已经排序,因此可以用双指针,计算每一组三个数字与目标值的距离,如果绝对值比较小,我们就存起来这个值。另外,如果第一个数字的三倍已经比目标和大或者相等了,那我们只要看当前数字和其后面两个数字就好,不需要双指针去寻找了,再有就是我们在调

weixin_54889359的博客 283

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 ...

qq_32350719的博客 209

【Array-medium】16. 3Sum Closest 三个数相加和接近目标值

1. 题目原址 https://leetcode.com/problems/3sum-closest/ 2. 题目描述 3. 题目大意 给定一个一维数组和一个目标值,返回和最接近目标值的和。 4. 解题思路 二分法来做。 先将一维数组排序 然后第一个元素+最后一个元素+中间元素的和与目标值进行比较。按照比较结果继续遍历。 5. AC代码 class Solution { public...

想当厨子的程序媛 300

leetcode 16. 3Sum Closest

leetcode 16. 3Sum Closest题目链接:input:output:特殊情况:解题思路code 题目链接: https://leetcode.com/problems/3sum-closest/ input: nums = [-1, 2, 1, -4], target= 1 output: 2 即 (-1 + 2 + 1 = 2). 特殊情况: 输入列表中包含重复值,如nums...

jiang_yq的专栏 261

Leetcode 16. 3Sum Closest

https://leetcode.com/problems/3sum-closest/ #include<algorithm> using namespace std; class Solution { public: void _sum(vector<int>& nums,int l,int &ans,int target,int x,int n)...

weixin_33819479的博客 102

[LeetCode] (medium) 16. 3Sum Closest

https://leetcode.com/problems/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 i...

Frontier_Setter的博客 164
上一篇: leetcode解题报告11. Container With Most Water
下一篇: leetcode解题报告14. Longest Common Prefix
sysu_xiaoming
博客等级 码龄10年 0粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值