zoukankan      html  css  js  c++  java
  • t9

    题目:

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

    Example:

    Given array nums = [-1, 2, 1, -4], and target = 1.
    
    The sum that is closest to the target is 2. (-1 + 2 + 1 = 2).

    代码:

     1 class Solution:
     2     def threeSumClosest(self, nums: List[int], target: int) -> int:
     3         closestTemp = float('inf')
     4         nums.sort()
     5         
     6         for p_i in range(len(nums)-2):
     7             if(p_i > 0 and nums[p_i] == nums[p_i-1]):
     8                 continue
     9             p_r = len(nums) -1
    10             p_l = p_i + 1
    11             while(p_l < p_r):
    12                 three_sum = nums[p_i] + nums[p_l] + nums[p_r]
    13                 if(abs(target - three_sum) < abs(target-closestTemp)):
    14                         closestTemp = three_sum
    15                         #print("new: ", closestTemp)
    16                 if(three_sum == target):
    17                     return three_sum
    18                 elif(three_sum < target):
    19                     p_l+=1
    20                     while(p_l < p_r and nums[p_l] == nums[p_l-1]):
    21                         p_l+=1
    22                 elif(three_sum > target):
    23                     p_r-=1
    24                     while(p_l < p_r and nums[p_r] == nums[p_r+1]):
    25                         p_r-=1
    26                     
    27         return closestTemp
  • 相关阅读:
    内置函数二
    内置函数一
    lambda表达式
    函数参数
    set集合
    元组和字典的功能
    列表功能介绍
    分篮子
    松鼠配对?
    奇数次的数?
  • 原文地址:https://www.cnblogs.com/tbgatgb/p/10888118.html
Copyright © 2011-2022 走看看