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

LeetCode两数之和问题:重复元素索引处理错误排查与修复

问题成因
  1. nums.index()方法的局限性:list.index(x)会返回列表中第一个等于x的元素的索引。当列表存在重复元素时,比如[3,3],不管你取的是第二个3,nums.index(3)始终返回0,导致你得到的索引都是第一个重复元素的位置,出现[0,0]的错误结果。
  2. 返回值类型错误:题目要求返回索引组成的列表(如[0,1]),但你的代码将索引转为字符串拼接后返回,结果是类似"01"的字符串,不符合题目要求。
修复方案

直接使用循环中已经得到的i和j作为索引即可,不需要调用index()方法——因为i和j本身就是当前遍历到的元素的正确索引。同时修正返回值的类型为列表。

修复后的代码如下:

from typing import List

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        if len(nums) < 2:
            return []  # 按题目要求返回空列表,而非False
        
        for i in range(len(nums)):
            for j in range(i + 1, len(nums)):
                if nums[i] + nums[j] == target:
                    return [i, j]  # 直接返回索引组成的列表
        return []  # 题目保证有解,此句可留作兜底
验证示例
  • 测试nums = [7,2,4,1], target =9:遍历到i=0,j=1时,7+2=9,返回[0,1],符合预期。
  • 测试nums = [3,3], target=6:遍历到i=0,j=1时,3+3=6,直接返回[0,1],解决了重复元素的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 05:35:24