#############################################
和上题原理相同,加入了比较部分,运用了双指针和排序
#############################################
class Solution:
def threeSumClosest(self, nums: List[int], target: int) -> int:
flag = 0
nums.sort()
result = 0
for i in range(len(nums)-2):
p = i + 1
q = len(nums) - 1
if flag ==0:
result = nums[i] + nums[p] + nums[q]
flag = 1
while(q>p):
sum = nums[i] + nums[p] + nums[q]
if sum == target:
result = sum
return result
elif sum >target:
if abs(sum-target)<abs(result-target):
result = sum
q -= 1
else:
if abs(sum-target)<abs(result-target):
result = sum
p += 1
return result