16.最接近的三数之和 python

STM32F4+FreeRTOS实战:手把手教你移植LWIP2.1.2(含LAN8720配置避坑指南) 本文提供了一份详尽的实战指南,手把手教你如何在STM32F4平台结合FreeRTOS实时操作系统,成功移植轻量级TCP/IP协议栈LWIP 2.1.2。文章重点剖析了硬件驱动层LAN8720 PHY芯片的配置要点与常见“坑点”,并深入讲解了LWIP与FreeRTOS的深度整合、关键配置及稳定性优化策略,旨在帮助开发者构建稳定可靠的产品级嵌入式网络功能。 阅读详情

题目

题目描述

给你一个长度为 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

题目链接

最接近的三数之和

题解

要解决这个问题,可以使用类似于“三数之和”问题的双指针法。具体步骤如下:

  1. 排序数组:首先对数组进行排序,这样可以方便地使用双指针法。
  2. 固定一个数:遍历数组,固定一个数 nums[i]。
  3. 使用双指针:对于固定的 nums[i],使用两个指针 left 和 right 分别指向 i+1 和数组的末尾,寻找使三数之和最接近 target 的组合。
  4. 更新最接近的和:在遍历过程中,不断更新最接近 target 的三数之和。

Python 实现

def threeSumClosest(nums, target):
    nums.sort()  # 对数组进行排序
    n = len(nums)
    closest_sum = float('inf')  # 初始化最接近的和为一个很大的值
    
    for i in range(n):
        left, right = i + 1, n - 1
        while left < right:
            current_sum = nums[i] + nums[left] + nums[right]
            if abs(current_sum - target) < abs(closest_sum - target):
                closest_sum = current_sum
            
            if current_sum < target:
                left += 1  # 如果当前和小于目标值,移动左指针
            elif current_sum > target:
                right -= 1  # 如果当前和大于目标值,移动右指针
            else:
                return current_sum  # 如果当前和等于目标值,直接返回
    
    return closest_sum

解释

  1. 排序数组:

    • nums.sort() 对数组进行排序,使得后续的双指针操作更加方便。
  2. 固定一个数:

    • 使用 for 循环遍历数组,固定一个数 nums[i]。
  3. 使用双指针:

    • 初始化两个指针 left 和 right,分别指向 i+1 和数组的末尾。
    • 计算当前三数之和 current_sum。
    • 如果 current_sum 更接近 target,更新 closest_sum。
    • 根据 current_sum 与 target 的关系,调整指针的位置:
      • 如果 current_sum < target,移动左指针 left。
      • 如果 current_sum > target,移动右指针 right。
      • 如果 current_sum == target,直接返回 current_sum,因为这是最接近的和。
  4. 返回结果:

    • 遍历结束后,返回最接近 target 的三数之和 closest_sum。

通过这种方法,可以在 O(n^2) 的时间复杂度内解决问题,效率较高。

提交结果

在这里插入图片描述

(秋招复习)一些SLAM基础 秋招复习--SLAM基础知识篇 阅读详情

相关推荐

STM32内存大小与地址的对应关系以及计算方法

1、概述 在计算机中要访问存储区,都是通过地址来进行访问的,包括所有的外设(比如串口、内存、硬盘等),都对应有一个访问地址,地址就相当于门牌号,有了门牌号,我们才知道操作的是哪一个区域、哪一个外设。 最被大家熟知的是计算机内存,计算机内存有4G、8G,16G等等,对于程序员而言,要在代码中操作这些内存,肯定得知道内存的地址,此外,还需要会计算地址与内存大小的计算方法与对应关系。STM32作为微

Ace's Blog 4万+

leetcode16-最接近的三数之和-基于python

leetcode16-最接近的三数之和-基于pythonleetcode16-最接近的三数之和-基于python1、题目2、解析3、代码4、知识点 leetcode16-最接近的三数之和-基于python 1、题目 给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。 2、解析 标签:排序和双指针 本题目因为要计算三个数,如果靠暴力枚举的话时间复杂度会到 O(n^3)

weixin_41444880的博客 292

ABAP BOM展开避坑指南:CS_BOM_EXPL_MAT_V2函数参数配置详解

本文深入解析了SAP ABAP开发中用于物料清单展开的核心函数CS_BOM_EXPL_MAT_V2。针对其复杂的参数配置,如CAPID、STLAN、DATUV和MEHRS,提供了详细的避坑指南和最佳实践,帮助开发者避免数据错误与性能陷阱,实现高效、准确的BOM多层展开。

pea55的博客 855

【LeetCode】打卡--Python3算法16. 最接近的三数之和

【LeetCode】打卡–Python3算法16. 最接近的三数之和 题目 给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。 例如,给定数组 nums = [-1,2,1,-4], ...

Asher117的博客 326

如何在SendWS实现WhatsApp批量群发设置管理?WhatsApp群发超链有什么好处?

WhatsApp群发顾名思义就是对WhatsApp上的用户好友进行群发消息,给他们群发想要发送的消息。及时不认识对方也可以对他进行群发超链。越来越多做跨境出海运营的工作者利用WhatsApp进行营销推广,因为他能做到低成本高回报,向客户发送消息曝光自己的品牌或产品,使得更多人了解,拓展新客户,提高成交率。

SendWS-WS云控群控拓客聊天翻译 1170

MATLAB实战:用ARMAX模型搞定电力系统惯量实时评估(附完整代码)

本文详细介绍了如何利用MATLAB中的ARMAX模型实现电力系统惯量的实时评估。通过系统辨识技术,结合电力系统的动态特性,提供从数据预处理、模型辨识到实时评估的全流程实战指南,并附完整代码。ARMAX模型在新能源高渗透率电网中展现出显著优势,误差较传统方法降低50%以上。

b9c0d的博客 396

16.最接近的三数之和(python)

【题目】 【思路】 先将nums排序,计算temp = nums[i]+nums[left]+nums[right]。 判断若temp&amp;gt;target,那就希望temp小一点,right左移(变小)。 ps:今天时间比较匆忙要赶飞机回家了,借鉴了小伙伴的代码,觉得还可以从二分法进行效率提高。也就是分别用left与middle,还有left和right来计算temp。选择更接近target的组...

weixin_43399785的博客 980

深入了解 Google Gemini:主要功能是什么以及我们为什么要使用它?

Google Gemini开启AI新纪元,以其独特的多模式功能重塑技术未来。

KompasAI的博客 4068

LeetCode题解(python)-16. 最接近的三数之和

LeetCode题解(python) 16. 最接近的三数之和 题目描述 给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。 例如,给定数组 nums = [-1,2,1,-4], 和 target = 1. 与 target 最接近的三个数的和为 2. (-1...

Marshal Zheng的博客 318

手把手教你安装 Vivado2022.2(附安装包)

Vivado 2022.2版本与之前的版本相比,具有以下几个显著的优势:电源设计管理器(PDM):Vivado 2022.2引入了全新的电源设计管理器(PDM),这是一个下一代功耗评估平台,为Versal® 和 Kria™ SOM提供了准确一致的功耗估计能力。PDM是Versal产品家族的首选功耗评估工具,为Versal ACAP硬IP块提供增强向导,简化从XPE向PDM的迁移,帮助用户获得准确的功耗评估。

dpwkj的博客 2万+

信号检测算法的MATLAB仿真:能量检测、循环平稳检测和匹配滤波检测

根据具体的应用场景和要求,选择合适的信号检测算法可以提高系统的性能和可靠性。在无线电通信中,信号检测是一项重要的任务,它用于检测和识别接收到的信号。在本文中,我们将介绍三种常用的信号检测算法:能量检测、循环平稳检测和匹配滤波检测,并提供相应的MATLAB源代码进行仿真实现。在上述代码中,我们首先设置了能量检测的阈值,然后生成了一个包含1000个服从正态分布的随机信号样本的信号。在上述代码中,我们首先设置了信号模板,然后生成了一个包含信号模板的信号样本。最后,通过比较相关性的最大值与阈值来判断信号是否存在。

PixelLancer的博客 1363

(python刷题)leetcode 第16题:最接近的三数之和

题目在leetcode上的链接为: https://leetcode-cn.com/problems/3sum-closest/ 题目描述 解题思路 这一题与第15题 三数之和 类似。先对数组 nums 进行从小到大排序,然后使用双指针解题。 我们使用 s 表示数组中三数之和,要求与 target 最接近的 s,就是求它们的差的绝对值 |s-target| 的最小值对应的 s,这其实就是一个简单...

qq_37891889的博客 322

人形机器人构成及成本估算(附报告)

这些执行器本身由螺杆、减速器、电机、传感器、滚珠轴承和编码器等组件构成。实现线性与旋转运动互转。人形机器人的运动系统可以由电驱动、液压驱动或气动驱动组成,但由于电驱动具有更高的精度和更快的响应速度,正在成为主流设计方案。执行器:NSK、THK、Harmonic Drive、Leaderdrive、Nidec、Moons。由螺杆、减速器、电机、传感器、轴承和编码器组成(如上为Tesla Optimus执行器设计示意)。传感器:Keyence、Robosense、Sensata、ATI、TE、Sony。

具身机器人和通用AI 1776

力扣第16题“最接近的三数之和”(python解决)

这一题与上一题类似,上一题我没有做出来,看了题解中大神的做法,先对原序列进行排序,然后利用当前指针向右遍历,当前指针右侧的左(当前指针+1)右(len(nums)-1)双指针遍历当前指针右侧的所有值,当三数之和大于0,证明当前右指针的值太大,right =right-1,反之,left = left-1,这题我也采用了类似的思路。

m0_60689417的博客 432

计算机控制技术及应用

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

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

LeetCode-Python-16. 最接近的三数之和

给定一个包括n个整数的数组nums和 一个目标值target。找出nums中的三个整数,使得它们的和与target最接近。返回这三个数的和。假定每组输入只存在唯一答案。 例如,给定数组 nums = [-1,2,1,-4], 和 target = 1. 与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2). 思路: LeetCode-Pytho...

Keep Coding 1924

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

16 -最接近的三数之和 - python

16. 最接近的三数之和 给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。 例如,给定数组 nums = [-1,2,1,-4], 和 target = 1. 与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2). 这道题和15 ...

Forlogenの解忧杂货铺 489

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

16. 最接近的三数之和(Python)

给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。 例如,给定数组 nums = [-1,2,1,-4], 和 target = 1. 与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2). 来源:力扣(LeetCode) 链接:h...

濯君 349

Leetcode 16. 最接近的三数之和(Python3)

16. 最接近的三数之和 给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。 例如,给定数组 nums = [-1,2,1,-4], 和 target = 1. 与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2). 思路: ...

Aries 342

Leetcode16. 最接近的三数之和-python

难度:中等 给定一个包括n 个整数的数组nums和 一个目标值target。找出nums中的三个整数,使得它们的和与target最接近。返回这三个数的和。假定每组输入只存在唯一答案。 例如,给定数组 nums = [-1,2,1,-4], 和 target = 1. 与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2). 思路:和15题一样,使用...

任萌新的小生活 329

Python描述 LeetCode 16. 最接近的三数之和

给你一个长度为 的整数数组 和 一个目标值 。请你从 中选出三个整数,使它们的和与 最接近。返回这三个数的和。假定每组输入只存在恰好一个解。示例 1: 示例 2: 提示:排序后双指针。先选定一个数,剩余两个数使用双指针遍历,根据三数之和与target大小的比较来确定指针的移动...

一起加油 375

leetcode 16:最接近的三数之和(python)

腾讯精选练习(50 题)Day10 leetcode 16:最接近的三数之和(python)

nanashi_F的博客 268

16.最接近的三数之和--python

题:给定一个包括n个整数的数组nums和一个目标target,找出nums中的三个整数,使得它们的和与target最接近,返回三个数的和 法:遍历+双指针,每次遍历到nums[i]的时候,设left,right=i+1,length-1,再将当前三个数之和相加记为tmpsum,如果tmpsum比target大则移动右指针,如果tmpsum比target小则移动左指针,如果和target相等的话直...

karen17的博客 294

python-leetcode-16. 最接近的三数之和

可以使用的方法来高效解决这个问题。

Lucy_wzw的博客 546

力扣(LeetCode 16)最接近的三数之和 python

题目 给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。 例如,给定数组 nums = [-1,2,1,-4], 和 target = 1. 与 target 最接近的三个数的和为 2...

qq_41318002的博客 419

力扣16.最接近的三数之和(python)

最接近的三数之和

2403_86623082的博客 264

leetcode 16 最接近的三数之和 python解法

classSolution: defthreeSumClosest(self,nums:List[int],target:int)->int: n=len(nums) nums.sort() best=float("inf") foriinrange(n): j,k=i+1,n-1 ifnums[i]==nums[i-...

hxjie211的博客 301
上一篇: 15.三数之和 python
下一篇: 17.电话号码的字母组合 python
gxls2024
博客等级 码龄9年 1079粉丝 166原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gxls2024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值