16 最接近的三數之和 python

2021-09-14 06:53:12 字數 814 閱讀 2035

題:給定乙個包括n個整數的陣列nums和乙個目標target,找出nums中的三個整數,使得它們的和與target最接近,返回三個數的和

法:遍歷+雙指標,每次遍歷到nums[i]的時候,設left,right=i+1,length-1,再將當前三個數之和相加記為tmpsum,如果tmpsum比target大則移動右指標,如果tmpsum比target小則移動左指標,如果和target相等的話直接return tmpsum,否則比較tmpsum-target與res-target的絕對值,看是否更新res。

注意:要先對nums排序,不然不能根據tmpsum與target的值大小來確定左右指標的移動

def threesumclosest(self, nums, target):

""":type nums: list[int]

:type target: int

:rtype: int

"""length=len(nums)

if length<3:return none

nums.sort()

res=nums[0]+nums[1]+nums[2]

for i in range (length):

left,right=i+1,length-1

while lefttarget:

right-=1

elif tmpsumleft+=1

else:return tmpsum

if abs(tmpsum-target)res=tmpsum

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...