zoukankan      html  css  js  c++  java
  • LeetCode 16. 最接近的三数之和

    16. 最接近的三数之和

    Difficulty: 中等

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

    示例:

    输入:nums = [-1,2,1,-4], target = 1
    输出:2
    解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。
    

    提示:

    • 3 <= nums.length <= 10^3
    • -10^3 <= nums[i] <= 10^3
    • -10^4 <= target <= 10^4

    Solution

    class Solution:
        def threeSumClosest(self, nums: List[int], target: int) -> int:
            nums.sort()
            res = 0
            diff = float('inf')  # 设置一个极大值
            
            for i in range(len(nums)):
                l, r = i+1, len(nums)-1
                while l < r:
                    s = nums[i] + nums[l] + nums[r]
                    if abs(s-target) < diff:
                        diff = abs(s-target)
                        res = s
                    if s < target: l += 1  # 左指针右移
                    elif s > target: r -= 1  # 右指针左移
                    else: return res
            return res
    
  • 相关阅读:
    SpringMVC是什么?
    SpringMVC工作原理
    SQL给字段加上统一的某个字符
    把数据库里的标签去掉
    Windows通过DOS命令进入MYSQL的方法
    mysql添加字段
    sqlserver查询最接近的记录
    LIST 排序
    Tsk4.5异步
    认识和使用Task
  • 原文地址:https://www.cnblogs.com/swordspoet/p/14352511.html
Copyright © 2011-2022 走看看