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

LeetCode Two Sum变种问题:添加else分支后执行异常排查

问题原因及解决方法

你遇到的问题核心是else分支的缩进位置错误。如果把else和循环内的if放在同一缩进层级,每次循环时只要当前元素不满足条件,就会立刻执行else分支返回提示,直接终止函数,根本不会继续遍历后续元素。比如你输入[2,3,4,6,7,8]和目标值10时,第一次循环检查i=1(元素3),2+3≠10,就会触发else返回,完全没机会走到i=5(元素8)的判断。

错误代码示例

def two_sum(nums, target):
    for i in range(1, len(nums)):
        if nums[0] + nums[i] == target:
            return [0, i]
        else:
            return "找不到符合条件的元素"

正确写法

正确的做法是让else和for循环对齐(或者直接在循环结束后写返回语句),这样只有当整个循环完整遍历完所有元素,且没有找到符合条件的元素时,才会执行返回提示的逻辑:

写法1:用for-else搭配

def two_sum(nums, target):
    for i in range(1, len(nums)):
        if nums[0] + nums[i] == target:
            return [0, i]
    else:
        return "找不到符合条件的元素"

写法2:循环结束后直接返回

def two_sum(nums, target):
    for i in range(1, len(nums)):
        if nums[0] + nums[i] == target:
            return [0, i]
    return "找不到符合条件的元素"

补充说明

Python里的for-else是特殊语法:else分支只会在循环正常执行完毕(没有被break、return等语句中断)时触发。把else和for对齐后,只有遍历完所有元素都没找到符合条件的,才会进入else分支。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 02:24:57