LeetCode16.最接近的三數之和 python3
阿新 • • 發佈:2018-12-11
給定一個包括 n 個整數的陣列 nums 和 一個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。
例如,給定陣列 nums = [-1,2,1,-4], 和 target = 1.
與 target 最接近的三個數的和為 2. (-1 + 2 + 1 = 2).
日常超時小程式,我想不出時間複雜度低的做法。。emm比較蠢 參考一下大神的再回來發言,先貼我的小程式
class Solution: def threeSumClosest(self, nums, target): """ :type nums: List[int] :type target: int :rtype: int """ temp = float('inf') if len(nums) == 3: return sum(nums) else: for i in range(len(nums)-2): for l in range(i+1, len(nums)-1): r = len(nums) - 1 while l < r: sums = nums[i] + nums[l] + nums[r] - target if abs(sums) < abs(temp): temp = sums r -= 1 return temp+target