leetcode刷题-最接近的三位数之和

1.题目描述leetcode刷题-最接近的三位数之和_第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+1
            end=len(nums)-1
            while start<end:
                sum=nums[start]+nums[end]+nums[i]
                if abs(target-sum)<abs(target-ans):
                    ans=sum
                if sum>target:
                    end=end-1
                elif sum<target:
                    start=start+1
                else:
                    return ans
        return ans

你可能感兴趣的:(leetcode,算法,python)