16 最接近的三數之和

2021-09-26 04:49:11 字數 954 閱讀 1313

給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。

例如,給定陣列 nums = [-1,2,1,-4], 和 target = 1.

與 target 最接近的三個數的和為 2. (-1 + 2 + 1 = 2).

【中等】

【分析】排序+雙指標(排序是當然為了雙指標的移動問題):

sum當sum>target時,為了使距離變小,應該使right-1sum=target時,距離已經最小了,直接返回sum

class solution(object):

def threesumclosest(self, nums, target):

""":type nums: list[int]

:type target: int

:rtype: int

"""if len(nums)==3:

return sum(nums)

nums=sorted(nums)

res=float("inf")

for i in range(len(nums)-2):

if i>0 and nums[i]==nums[i-1]:

continue

left,right=i+1,len(nums)-1

while lefttarget:

right-=1

else:

left+=1

if abs(sum3-target)res=sum3

return res

16 最接近的三數之和

給定乙個包括 n 個整數的陣列nums和 乙個目標值target。找出nums中的三個整數,使得它們的和與target最接近。返回這三個數的和。假定每組輸入只存在唯一答案。例如,給定陣列 nums 1,2,1,4 和 target 1.與 target 最接近的三個數的和為 2.1 2 1 2 思考...

16 最接近的三數之和

給定乙個包括 n 個整數的陣列nums和 乙個目標值target。找出nums中的三個整數,使得它們的和與target最接近。返回這三個數的和。假定每組輸入只存在唯一答案。例如,給定陣列 nums 1,2,1,4 和 target 1.與 target 最接近的三個數的和為 2.1 2 1 2 如果...

16 最接近的三數之和

給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。例如,給定陣列 nums 1,2,1,4 和 target 1.與 target 最接近的三個數的和為 2.1 2...