嘿嘿 缝缝补补了一早上 终于做出来啦!
还是左右指针
之前写的逻辑很乱,看了别人的回答之后才修改为如下。
要提高代码的逻辑啊!!!
class Solution:
def threeSumClosest(self, nums: List[int], target: int) -> int:
nums.sort()
min=float("inf")
ans=float("inf")
for i in range(len(nums)-2):
l=i+1
r=len(nums)-1
while l<r:
s=nums[i]+nums[l]+nums[r]
if s==target:
return s
elif s>target:
if abs(s-target)<min:
min=abs(s-target)
ans =s
r-=1
else:
if abs(s-target)<min:
min=abs(s-target)
ans =s
l+=1
return ans