【LeetCode】16. 最接近的三数之和
[LeetCode]16. 最接近的三数之和
题目
给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。
示例 1
输入:nums = [-1,2,1,-4], target = 1
输出:2
与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。
解析
- 分析
跟15.三数之和类似
abs(target - current)这个值越少说明越接近
- 算法流程
排序 - 为了能使用双指针
遍历
- 固定一位(i), 左右指针指向下一位与最后一位(
left = i + 1,right = n - 1) - 按条件遍历左右指针
- i + left + right == 0 : 当前和
target重合了,直接返回 - i + left + right < 0 : 结果偏少,需要增加结果 left++(数组排序后从左往右依次增大)
- i + left + right > 0 : 结果偏大,需要减少结果 right--
- i + left + right == 0 : 当前和
- 固定一位(i), 左右指针指向下一位与最后一位(
源码
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. 最接近的三数之和的更多相关文章
- Java实现 LeetCode 16 最接近的三数之和
16. 最接近的三数之和 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存 ...
- LeetCode 16. 最接近的三数之和(3Sum Closest)
题目描述 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存在唯一答案. 例 ...
- [LeetCode] 16. 最接近的三数之和
题目链接:https://leetcode-cn.com/problems/3sum-closest/ 题目描述: 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 num ...
- LeetCode:最接近的三数之和【16】
LeetCode:最接近的三数之和[16] 题目描述 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这 ...
- Leetcode题库——16.最接近的三数之和
@author: ZZQ @software: PyCharm @file: threeSumClosest.py @time: 2018/10/14 20:28 说明:最接近的三数之和. 给定一个包 ...
- leetcode.数组.16最接近的三数之和-java
1. 具体题目 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存在唯一答案 ...
- [LeetCode] 16. 3Sum Closest 最近三数之和
Given an array nums of n integers and an integer target, find three integers in nums such that the s ...
- 【LeetCode】最接近的三数之和【排序,固定k1,二分寻找k2和k3】
给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存在唯一答案. 例如,给定数 ...
- LeetCode 16. 3Sum Closest(最接近的三数之和)
LeetCode 16. 3Sum Closest(最接近的三数之和)
- LeetCode-016-最接近的三数之和
最接近的三数之和 题目描述:给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只 ...
随机推荐
- MySQL 11 怎么给字符串字段加索引?
场景引入 假设现在维护一个支持邮箱登录的系统,用户表定义如下: create table SUser(ID bigint unsigned primary key,email varchar(64), ...
- Faiss能解决什么问题?Faiss是什么?
1. Faiss能解决什么问题? 为了比较两个结构化的数据是否相似,例如两张图片是不是类似,两段文本表达的含义是否类似,则需要将非结构化的数据先转成向量数据,然后再进行相似度比较. 如何通过向量化技术 ...
- API可视化编排如何实现
企业随着前后端分离架构.微服务架构.中台战略.产业互联互通的实施必将产生大量的各种协议的API服务,API将成为企业的数字化资产且API会越来越多, API服务之间的相互调用和依赖情况也随之越来越多和 ...
- windows 11正式版如何设置使用双屏幕的问题
有雨林木风官网的朋友,因为工作需要在使用电脑时,要用到双屏幕来分开操作不同的软件,但是连接第二个显示器后,却没有办法使用这个显示器,这是什么原因呢?其实,因为Windows 11系统未进行相对应的设定 ...
- 深度消息:微软Win11系统会有LTSC版本
据深度之家的最新信息:微软官方在AMA(Ask Me Anything:问我任何问题)确认,win11系统和Win10系统一样,提供每月安全更新.可选累积更新.服务堆栈更新等服务. 在AMA上微软官方 ...
- 有了WriteRightly 这个AI神器,大学里的混子导师可以失业了
有了这个AI论文神器,大学里的"混子导师"都可以失业了 七月毕业季.同学们不是在毕业旅行就是已经准备新工作了. 而我研三的表弟,学计算机的,却仍然在图书馆改毕业论文.一周前我舅,也 ...
- ZWCAD 批量打印
一.前言: ZWCAD单个打印费时费力,于是本人通过系列摸索,学会了批量打印方法,特此发帖以记录.分享给广大朋友. 本贴并非完全的攻略贴,而是一种踩坑记录,如若有不当之处,欢迎各位大佬指正. ...
- 02oeis.py(OEIS解析)
# name: 02oeis.py # date: 20240324 # link: https://blog.csdn.net/qq_38848616/article/details/7963755 ...
- 调试 mouseover 才显示的元素
temp1.dispatchEvent( new MouseEvent('mouseover', { view: window, bubbles: true, cancelable: true, }) ...
- DRF视图详解:从基础视图到通用视图实践指南
一.基础视图 (APIView) APIView 是 DRF 中所有视图的基类,继承自 Django 的 View,并添加了 DRF 特有的功能(如认证.权限.限流等). 示例:使用APIView实现 ...