|
发表于 2020-8-16 18:54:14
|
显示全部楼层
本帖最后由 Twilight6 于 2020-8-16 18:57 编辑
最后一行不是有一个返回吗,为什么还要再加一个return?
一个 return 在 while 循环内部,所以前提要符合 while 的循环条件才能进入循环
而且 while 循环中只有 else 设置了 return ,则只有当 else 上面的 if 和 elif 条件都不成立才会执行这个 return ,如果没有循环外的 return
那么执行代码时候,如果循环根本没有进入,或者循环过程中 if 和 elif 条件总有一个满足时退出 while 循环,就会导致你没有设置 reuturn ,返回 None 了
而且这个代码可以正常执行,有返回结果:
测试代码:
- class Solution:
- def threeSumClosest(self, nums, target: int) -> int:
- n = len(nums)
- res = float('inf')
- if not nums: return 0
- if n < 3:return sum(nums)
- nums.sort()
- for i in range(n):
- L = i + 1
- R = n - 1
- while L < R:
- t = nums[i] + nums[L] + nums[R]
- if abs(t - target) < abs(res - target):
- res = nums[i] + nums[L] + nums[R]
- if t < target:
- L += 1
- elif t > target:
- R -= 1
- else:
- res = t
- return res
- return res
- test = Solution()
- print(test.threeSumClosest([0,1,2],3))
复制代码
|
|