leetcode 最接近的三數之和 python

2021-09-08 08:36:10 字數 1438 閱讀 6856

題目鏈結

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

遍歷三個數字,乙個數字順序遍歷,另外兩個採用二分法遍歷

class

solution

:def

threesumclosest

(self, nums, target)

:"""

:type nums: list[int]

:type target: int

:rtype: int

"""iflen

(nums)

<3:

raise exception(

'input error'

) nums.sort(

) threenums = nums[0]

+ nums[1]

+ nums[2]

differ =

abs(threenums - target)

ans = threenums

for i in

range

(len

(nums)-2

):low = i +

1 high =

len(nums)-1

while

(low < high)

: threenums = nums[i]

+ nums[low]

+ nums[high]

ifabs

(threenums - target)

< differ:

differ =

abs(threenums - target)

ans = threenums

if threenums == target:

return target

elif threenums < target:

while low < high and nums[low +1]

== nums[low]

: low +=

1 low +=

1else

:while low < high and nums[high -1]

== nums[high]

: high -=

1 high -=

1return ans

Leetcode 最接近的三數之和

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

LeetCode 最接近的三數之和

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

LeetCode 最接近的三數之和

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