本题是三数之和的改版,求的是一个最接近的和,但是去除了不可重复的条件,相较之下更为简单。依然是使用双指针法,暂无优化思路。
class Solution:
def threeSumClosest(self, nums, target):
min_value=9999999
nums.sort()
first=0 #第一个指针初始置为0
for first in range(0,len(nums)-2):
second= first+1
third = len(nums)-1 # 第三个指针初始置为列表的尾部
while second < third:
x=nums[first] + nums[second] + nums[third]
res=abs(x - target)
if res == 0:
return target
if res < min_value:
min_value = res
result = x
if x > target:
third = third-1
elif x < target:
second = second+1
return result