1.题目描述
2.解题思路
其实这个题目的解题思路,和昨天写的两个题目差不多,定义两个指针,进行排序,避免多次大量循环,减少时间复杂度。在上次的基础上进行了一个比较小的改动。
3.代码
class Solution:def threeSumClosest(self, nums: List[int], target: int) -> int:#仍然使用双指针的方法进行计算nums.sort()ans=nums[0]+nums[1]+nums[2]for i in range(0,len(nums)):start=i+1end=len(nums)-1while start<end:sum=nums[start]+nums[end]+nums[i]if abs(target-sum)<abs(target-ans):ans=sumif sum>target:end=end-1elif sum<target:start=start+1else:return ansreturn ans