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
  • 相关阅读:
    P1158 导弹拦截
    麦基数(p1045)
    Django之路由层
    web应用与http协议
    Django之简介
    Mysql之表的查询
    Mysql之完整性约束
    Mysql之常用操作
    Mysql之数据类型
    Mysql之数据库简介
  • 原文地址:https://www.cnblogs.com/tbgatgb/p/10888118.html
Copyright © 2011-2022 走看看