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

LeetCode编写twoSum题解时Python for循环冒号报错问题求助

问题排查与修复方案

一、第5、6行语法错误修复

  • 第5行for n1 in range(1, len(nums) + 1):末尾的冒号是中文全角符号,Python仅识别英文半角符号,替换为英文半角:即可解决系统报的冒号错误。
  • 第6行if nums[n1] == nums[n2]末尾缺少英文半角冒号:,补充后即可解决该行的语法报错。

二、其余影响运行的逻辑错误修复

除语法问题外,你的代码还存在多处逻辑错误,不符合两数之和题目的要求:

  • 索引规则错误:Python列表从0开始索引,你设置的range(1, len(nums)+1)会跳过第一个元素,且最后访问nums[len(nums)]时会触发数组越界报错,需改为range(len(nums))。
  • 判断条件错误:你当前判断的是下标之和等于目标值,实际应该判断两个下标对应的值之和等于目标值,即nums[n1] + nums[n2] == target。
  • 冗余无效代码:开头的strnums是空列表,遍历操作不会执行,完全无用可直接删除。
  • 输出规则错误:题目要求返回两个符合要求的下标,你当前是打印对应的值,需改为返回[n1, n2]格式的列表。
  • 重复判断问题:双层循环会重复校验同一对下标,还会出现两个下标相同的无效情况,可添加判断if n1 >= n2: continue过滤。

三、修正后可正常运行的完整代码

from typing import List
class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        for n1 in range(len(nums)):
            for n2 in range(len(nums)):
                if n1 >= n2:
                    continue
                if nums[n1] + nums[n2] == target:
                    return [n1, n2]
        return []

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 14:36:10