You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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)

修正说明

  1. 替换print(i)为return i:让函数找到目标值时直接返回对应的索引,满足题目要求的返回逻辑
  2. 补充末尾的return:当目标值不在数组中时,返回数组长度作为插入位置,覆盖所有边界情况
  3. 优化判断条件:直接判断nums[i] >= target,既可以找到目标值的索引,也能确定目标值需要插入的位置,一举两得

内容的提问来源于stack exchange,提问作者Poorna Manohar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 17:42:02