LeetCode中Python无法返回值报错:TypeError:None不符合整数返回类型
解决LeetCode searchInsert函数的TypeError问题
你的代码触发错误的原因很明确:
- LeetCode题目要求函数返回整数类型的索引,但你在找到目标值时用了
print(i)而不是return i,打印操作不会给函数提供有效返回值 - 如果目标值不在数组里,你的函数全程没有任何return语句,Python会默认返回
None,这不符合题目要求的返回类型,直接触发TypeError
修正后的代码
class Solution: def searchInsert(self, nums: List[int], target: int) -> int: for i in range(len(nums)): # 找到第一个大于等于目标值的位置,直接返回 if nums[i] >= target: return i # 目标值比所有元素都大,插入到数组末尾 return len(nums)
修正说明
- 替换
print(i)为return i:让函数找到目标值时直接返回对应的索引,满足题目要求的返回逻辑 - 补充末尾的return:当目标值不在数组中时,返回数组长度作为插入位置,覆盖所有边界情况
- 优化判断条件:直接判断
nums[i] >= target,既可以找到目标值的索引,也能确定目标值需要插入的位置,一举两得
内容的提问来源于stack exchange,提问作者Poorna Manohar
相关产品推荐
相关产品推荐

