給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。
原題請參考鏈結
方法一 【排序+雙指標】
class solution:
def threesumclosest(self, nums: list[int], target: int) -> int:
l = len(nums)
res = 10**7
nums.sort()
for a in range(l):
if a>0 and nums[a] == nums[a-1]:
continue
b = a + 1
c = l - 1
while b < c :
s = nums[a] + nums[b] + nums[c]
if s == target:
return s
if abs(s-target) < abs(res-target):
res = s
if s > target:
c0 = c - 1
while b < c0 and nums[c0] == nums[c]:
c0 -= 1
c = c0
if s < target:
b0 = b + 1
while b0b0 += 1
b = b0
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...