在做了好多雙指標終於掌握了這門技術。。。。要多想一些雙指標之上的優化策略,比如什麼時候可以直接跳出、將列表裡的數字(會重複遇到的數)先提出來、遇到相同的數直接跳過
不過還是沒辦法一下子寫對啊
class solution:
def threesumclosest(self, nums: list[int], target: int) -> int:
nums.sort()
result=nums[0]+nums[1]+nums[2]
length=len(nums)
middle=abs(result-target)
for i in range(length):
left=i+1
right=length-1
if i > 0 and nums[i] == nums[i-1]:
continue
while leftresult_middle=nums[left]+nums[right]+nums[i]
if abs(result_middle-target) < middle:
result=result_middle
middle=abs(result_middle-target)
if leftleft+=1
if leftright-=1
elif result_middle-target<0:
left+=1
else:
right-=1
if middle==0:break
return result
LeetCode之最接近的三數之和
題目描述 給定乙個包括 n 個整數的陣列nums和 乙個目標值target。找出nums中的三個整數,使得它們的和與target最接近。返回這三個數的和。假定每組輸入只存在唯一答案。例如,給定陣列 nums 1,2,1,4 和 target 1.與 target 最接近的三個數的和為 2.1 2 1...
leetcode刷題之路16 最接近的三數之和
給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。例如,給定陣列 nums 1,2,1,4 和 target 1.與 target 最接近的三個數的和為 2.1 2...
leetcode刷題 16 最接近的三數之和
給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。給定陣列 nums 1,2,1,4 和 target 1.與 target 最接近的三個數的和為 2.1 2 1 ...