leetcode 16. 3Sum Closest的思路与python实现

mac2025-06-01  77

我的leetcode系列博文一般没什么参考价值,思路一般懒得叙述完整。代码可以看看,不过leetcode的discussion里有更好的。纯属随便记录。

思路

这题跟3SUM的做法差不多。

记得先把数组sort了。

在比较当前solution和存储的solution哪个好的时候,记得使用abs算绝对值。

要思考的是3SUM里使用的left, right双指针寻找exactly的solution,能否用在这里找到closest的solution呢?

可以。

代码

class Solution: def threeSumClosest(self, nums: List[int], target: int) -> int: if len(nums) < 3: return 0 nums.sort() res = nums[0] + nums[1] + nums[2] for i in range(len(nums) - 2): left, right = i + 1, len(nums) - 1 while left < right: summary = nums[i] + nums[left] + nums[right] if abs(target - summary) < abs(target - res): res = summary if summary == target: return target elif summary > target: right -= 1 else: left += 1 return res

 

最新回复(0)