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

本地运行正常的Python代码提交LeetCode出现NameError运行时错误求助

问题解决:LeetCode提交Python代码出现NameError

错误原因

LeetCode的Python判题系统要求代码必须遵循固定格式:定义名为Solution的类,且类中实现题目指定的方法(本题为twoSum)。你的代码用了自定义的sol函数,还添加了本地测试的打印代码,导致平台找不到Solution类,触发NameError: global name 'Solution' is not defined。

另外,你的算法逻辑存在问题:原代码只检查相邻元素的和,不符合两数之和题目的要求(题目允许任意两个不同索引的元素相加等于目标值,不一定相邻)。

修改方案

1. 遵循LeetCode格式要求

必须定义Solution类和twoSum方法,方法需要返回结果列表(而非打印),移除所有本地测试代码。

2. 修正算法逻辑

推荐使用哈希表实现高效解法(时间复杂度O(n)),或者用双重循环实现基础解法(时间复杂度O(n²))。

高效哈希表解法

class Solution:
    def twoSum(self, nums, target):
        num_index_map = {}
        for idx, num in enumerate(nums):
            complement = target - num
            if complement in num_index_map:
                return [num_index_map[complement], idx]
            num_index_map[num] = idx
        return []

基础双重循环解法

class Solution:
    def twoSum(self, nums, target):
        n = len(nums)
        for i in range(n):
            for j in range(i + 1, n):
                if nums[i] + nums[j] == target:
                    return [i, j]
        return []

3. 额外说明

  • 不需要自行做输入合法性检查,LeetCode会保证输入符合题目给定的约束条件
  • 提交时只需提交Solution类的代码,不要添加任何测试用例或打印语句

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 11:22:41