給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。
示例:輸入:nums = [-1,2,1,-4], target = 1
輸出:2
解釋:與 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。
3 <= nums.length <= 10^3
-10^3 <= nums[i] <= 10^3
-10^4 <= target <= 10^4
classsolution:
def threesumclosest(self, nums: list[int], target: int) ->int:
nums.sort()
n=len(nums)
res=float('
inf'
)
defupdate(cur):
nonlocal res
if abs(cur-target)target):
res=cur
for i in
range(n):
if i>0 and nums[i]==nums[i-1]:
continue
j,k=i+1,n-1
while js=nums[i]+nums[j]+nums[k]
if s==target:return
target
update(s)
if sjj=j+1
while jjand nums[jj]==nums[j]:
jj+=1j=jj
else
: kk=k-1
while jand nums[kk]==nums[k]:
kk-=1k=kk
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...