[LeetCode]16. 最接近的三数之和

题目

给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。

示例 1

输入:nums = [-1,2,1,-4], target = 1

输出:2

与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。

解析

  • 分析
  1. 15.三数之和类似

  2. abs(target - current) 这个值越少说明越接近

  • 算法流程
  1. 排序 - 为了能使用双指针

  2. 遍历

    1. 固定一位(i), 左右指针指向下一位与最后一位(left = i + 1 , right = n - 1
    2. 按条件遍历左右指针
      1. i + left + right == 0 : 当前和target重合了,直接返回
      2. i + left + right < 0 : 结果偏少,需要增加结果 left++(数组排序后从左往右依次增大)
      3. i + left + right > 0 : 结果偏大,需要减少结果 right--

源码

from typing import List

class Solution:
def threeSumClosest(self, nums: List[int], target: int) -> int:
nums.sort() length = len(nums)
res: int = nums[0] + nums[1] + nums[2]
for i in range(length-2):
left = i + 1
right = length - 1
while left < right:
total = (nums[i] + nums[left] + nums[right])
if abs(target - total) < abs(target - res):
res = total if target == total:
return total
elif total > target:
right = right - 1
else:
left = left + 1 return res

引用

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

源码 - GitHub

【LeetCode】16. 最接近的三数之和的更多相关文章

  1. Java实现 LeetCode 16 最接近的三数之和

    16. 最接近的三数之和 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存 ...

  2. LeetCode 16. 最接近的三数之和(3Sum Closest)

    题目描述 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存在唯一答案. 例 ...

  3. [LeetCode] 16. 最接近的三数之和

    题目链接:https://leetcode-cn.com/problems/3sum-closest/ 题目描述: 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 num ...

  4. LeetCode:最接近的三数之和【16】

    LeetCode:最接近的三数之和[16] 题目描述 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这 ...

  5. Leetcode题库——16.最接近的三数之和

    @author: ZZQ @software: PyCharm @file: threeSumClosest.py @time: 2018/10/14 20:28 说明:最接近的三数之和. 给定一个包 ...

  6. leetcode.数组.16最接近的三数之和-java

    1. 具体题目 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存在唯一答案 ...

  7. [LeetCode] 16. 3Sum Closest 最近三数之和

    Given an array nums of n integers and an integer target, find three integers in nums such that the s ...

  8. 【LeetCode】最接近的三数之和【排序,固定k1,二分寻找k2和k3】

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

  9. LeetCode 16. 3Sum Closest(最接近的三数之和)

    LeetCode 16. 3Sum Closest(最接近的三数之和)

  10. LeetCode-016-最接近的三数之和

    最接近的三数之和 题目描述:给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只 ...

随机推荐

  1. MySQL 11 怎么给字符串字段加索引?

    场景引入 假设现在维护一个支持邮箱登录的系统,用户表定义如下: create table SUser(ID bigint unsigned primary key,email varchar(64), ...

  2. Faiss能解决什么问题?Faiss是什么?

    1. Faiss能解决什么问题? 为了比较两个结构化的数据是否相似,例如两张图片是不是类似,两段文本表达的含义是否类似,则需要将非结构化的数据先转成向量数据,然后再进行相似度比较. 如何通过向量化技术 ...

  3. API可视化编排如何实现

    企业随着前后端分离架构.微服务架构.中台战略.产业互联互通的实施必将产生大量的各种协议的API服务,API将成为企业的数字化资产且API会越来越多, API服务之间的相互调用和依赖情况也随之越来越多和 ...

  4. windows 11正式版如何设置使用双屏幕的问题

    有雨林木风官网的朋友,因为工作需要在使用电脑时,要用到双屏幕来分开操作不同的软件,但是连接第二个显示器后,却没有办法使用这个显示器,这是什么原因呢?其实,因为Windows 11系统未进行相对应的设定 ...

  5. 深度消息:微软Win11系统会有LTSC版本

    据深度之家的最新信息:微软官方在AMA(Ask Me Anything:问我任何问题)确认,win11系统和Win10系统一样,提供每月安全更新.可选累积更新.服务堆栈更新等服务. 在AMA上微软官方 ...

  6. 有了WriteRightly 这个AI神器,大学里的混子导师可以失业了

    有了这个AI论文神器,大学里的"混子导师"都可以失业了 七月毕业季.同学们不是在毕业旅行就是已经准备新工作了. 而我研三的表弟,学计算机的,却仍然在图书馆改毕业论文.一周前我舅,也 ...

  7. ZWCAD 批量打印

    一.前言:   ZWCAD单个打印费时费力,于是本人通过系列摸索,学会了批量打印方法,特此发帖以记录.分享给广大朋友.   本贴并非完全的攻略贴,而是一种踩坑记录,如若有不当之处,欢迎各位大佬指正. ...

  8. 02oeis.py(OEIS解析)

    # name: 02oeis.py # date: 20240324 # link: https://blog.csdn.net/qq_38848616/article/details/7963755 ...

  9. 调试 mouseover 才显示的元素

    temp1.dispatchEvent( new MouseEvent('mouseover', { view: window, bubbles: true, cancelable: true, }) ...

  10. DRF视图详解:从基础视图到通用视图实践指南

    一.基础视图 (APIView) APIView 是 DRF 中所有视图的基类,继承自 Django 的 View,并添加了 DRF 特有的功能(如认证.权限.限流等). 示例:使用APIView实现 ...