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
  • 相关阅读:
    iOS 上线流程
    静态库和动态库的区别
    iOS如何生成.a文件
    苹果公司软件
    iOS 的主要框架
    多线程图解
    判断屏幕横屏/竖屏
    最大堆构建和堆排序
    hadoop2.6.0 + hbase-1.0.0 伪分布配置
    centos6 名字服务dnsmasq配置
  • 原文地址:https://www.cnblogs.com/tbgatgb/p/10888118.html
Copyright © 2011-2022 走看看