首页 > 其他分享 >LeetCode 16. 3Sum Closest 双指针+排序

LeetCode 16. 3Sum Closest 双指针+排序

时间:2023-08-08 17:23:18浏览次数:52  
标签:cand target tgt nums 3Sum 16 Closest int sorted

Given an integer array nums of length n 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.

Solution

先将原数组排序, 然后枚举起始点,对于起始点后面的俩个数再进行双指针扫描(\(left=st, right=end\))

点击查看代码
class Solution:
    def threeSumClosest(self, nums: List[int], target: int) -> int:
        if len(nums)<3:
            return 0
        sorted_nums = sorted(nums)

        dif = 99999999999

        def TwoSumClosest(nums, st, tgt):
            left, right = st, len(nums)-1
            delta = 9999999999
            while left<right:
                s = nums[left]+nums[right]
                if abs(delta)>abs(tgt-s):
                    delta=tgt-s
                if s<tgt:
                    left+=1
                elif s>=tgt:
                    right-=1
            return tgt-delta
        
        for i in range(len(nums)-1):
            cand = sorted_nums[i] + TwoSumClosest(sorted_nums, i+1, target-sorted_nums[i])
            if abs(dif)>abs(target-cand):
                dif = target-cand
        
        return target-dif

标签:cand,target,tgt,nums,3Sum,16,Closest,int,sorted
From: https://www.cnblogs.com/xinyu04/p/17614917.html

相关文章

  • 苹果M3 Max有两种版本:14+40?还是16+40?
    最近有关苹果M3系列处理器的消息突然多了起来,包括M3、M3Pro、M3Max,都将升级为台积电3nm工艺,但规格上比较保守,至少核心数量不会大幅增加。此前说法称,M3Max将配备14个CPU核心、40个GPU核心,相比于M2Max都增加了2个。根据最新曝料,苹果正在测试两种版本的M3Max,其一就是14+40核心......
  • 学习Java第16天
    Scanner对象之前我们学的基本语法中文名并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入。Java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入基本语法:Scanners=newScanner(System.in)通过Scanner类的ne......
  • PPT| APS高级计划与排产解决方案 P116
    PPT共116页,由于篇幅有限,以下为部分资料.......
  • JavaScript中16进制颜色与rgb颜色互相转换
    16进制转rgbfunctionhexToRgba(hex,opacity){if(!hex)hex='#ededed';letrgba='rgba('+parseInt('0x'+hex.slice(1,3))+','+parseInt('0x'+hex.slice(3,5))+','+......
  • Siemens SERVER 2016中安装WINCC 7.5 SP1
     一、查询WINCC兼容性列表,得知WINCC7.5可以在SERVER2016中安装,且与SIMATICNETV16兼容:二、了解了系统及软件的兼容性之后,开始准备操作系统及软件。1.安装VMware虚拟机,内容略过……2.部署英文版WindowsServer2016系统;3.安装中文语言包;4.安装消息队列、IIS、NetFramew......
  • Ubuntu 16.04 安装python3.6正确顺序(解决ssl错误,pip升级)
    0、下载离线python压缩包PythonSourceReleases|Python.org,1、新建root,并进入root权限(sudopasswdroot)(su)2、升级openssl版本wgethttps://www.openssl.org/source/openssl-1.1.0k.tar.gztar-zxvfopenssl-1.1.0k.tar.gzcdopenssl-1.1.0k./configmakeinstall......
  • Cilium系列-16-CiliumNetworkPolicy 实战演练
    系列文章Cilium系列文章前言今天我们进入Cilium安全相关主题,基于Cilium官方的《星球大战》Demo做详细的CiliumNetworkPolicy实战演练。场景您是帝国(Empire)的平台工程团队的一员,负责开发死星(DeathStar)API并将其部署到帝国银河Kubernetes服务(Imperial......
  • Win11设置固定IP地址后,仍然以169.254.*.* 为首选IP的解决方法
    经过不断尝试,结合网上找到的范例,以管理员执行以下命令并重启可解决:netshwinsockresetcatalog解释:一般添加catalog意指winsock目录,但通常命令可不用加catalog参数,直接reset即可重置。netshintipresetreset.log解释:注意:如果您不想指定日志文件的目录路径,运行命令︰netshin......
  • 国产化SCT52241双通道下管IGBT/MOSFET栅极驱动器,可替代UCC27525A、ISL89165等
    SCT52241是是一款宽供电电压、双通道、高速、低测栅极驱动器,包括功率MOSFET,IGBT。单个通道能够提供高达4A拉电流和4A灌电流的轨到轨驱动能力,并实现轨到轨输出。高达24V宽电压范围提高功率器件开关瞬间栅极驱动的振铃幅值裕度。13ns输入输出传输延迟特性适合高频功率转换器应用。SCT......
  • node14 升级 node16 后 vue2 项目中 sass 报错问题
    起因不知道因为个什么手贱把之前的node14版本卸载了去官网重新下载安装了一下node,最近版本升级到了node16,以为应该不会有什么问题吧,结果把项目一跑,我勒个去,一堆飘红的,看控制台提示主要是这个node-sass报的错。  #卸载npmuninstallnode-sasssass-loader#重新安......