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

    给定一个包括 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
    通过次数133,469提交次数291,587

    class Solution:
        def threeSumClosest(self, nums: List[int], target: int) -> int:
            nums = sorted(nums)
            ans = None
            for i in range(len(nums)-2):
                flag  = nums[i]
                L = i + 1
                R = len(nums) - 1
                while L < R:
                    tmp = flag + nums[L] + nums[R]
                    if ans is None or abs(target - tmp) < abs(target - ans):
                        ans = tmp 
                    if tmp < target:
                        L+=1
                    elif tmp > target:
                        R-=1
                    else:
                        break
            return ans
    
  • 相关阅读:
    第六次实验报告
    第三次实验报告
    第五张循环语句总结
    第二次实验报告
    第一次实验报告
    第一次作业
    第九章 结构体与共用体
    第八章 指针实验
    第七章数组实验
    第六章实验报告(2)
  • 原文地址:https://www.cnblogs.com/sandy-t/p/13283371.html
Copyright © 2011-2022 走看看