給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。
例如,給定陣列 nums = [-1,2,1,-4], 和 target = 1.
與 target 最接近的三個數的和為 2. (-1 + 2 + 1 = 2).
class
solution
:def
threesumclosest
(self, nums: list[
int]
, target:
int)
->
int:
n =len(nums)
nums.sort(
) result =
0if n <3or
not nums:
return
0 init_dif =
abs(nums[0]
+ nums[1]
+ nums[n-1]
-target)
for i in
range
(n-2):
l = i +
1 r = n -
1while ldif =
abs(nums[i]
+ nums[l]
+ nums[r]
-target)
if dif ==0:
result = target
if dif <= init_dif :
result = nums[i]
+ nums[l]
+ nums[r]
init_dif = dif
if nums[i]
+ nums[l]
+ nums[r]
- target <0:
l +=
1else
: r -=
1return result
力扣 16 最接近的三數之和
16.最接近的三數之和 給你乙個長度為n的整數陣列nums和 乙個目標值target。請你從nums中選出三個整數,使它們的和與target最接近。假定每組輸入只存在恰好乙個解。示例 1 輸入 nums 1,2,1,4 target 1 輸出 2 解釋 與 target 最接近的和是 2 1 2 1...
力扣第16題 最接近的三數之和
給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。示例 輸入 nums 1,2,1,4 target 1 輸出 2 解釋 與 target 最接近的和是 2 1 2...
力扣 16 最接近的三數之和, 雙指標法
題目 給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。例如,給定陣列 nums 1,2,1,4 和 target 1.與 target 最接近的三個數的和為 2....