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

如何打印LeetCode两数之和问题的答案?Python新手技术求助

LeetCode两数之和:用print()输出答案的方法

首先,你的代码是类方法格式(带self参数),如果只是单独运行测试,需要把self去掉改成普通函数,才能直接调用。

打印答案的步骤

  1. 修正函数定义(去掉self,同时优化索引获取逻辑):
def twoSum(nums: list[int], target: int) -> list[int]:
    dictionary = {}
    
    for i in range(len(nums)):
        secondNumber = target - nums[i]
        if secondNumber in dictionary:
            # 直接从字典取已存储的索引,比nums.index高效得多
            secondIndex = dictionary[secondNumber]
            if i != secondIndex:
                return sorted([i, secondIndex])
        
        dictionary[nums[i]] = i
  1. 定义你的输入列表和目标值(替换成你那一千个数字的列表即可):
# 示例输入,可替换为你的实际列表
nums = [2, 7, 11, 15, ...]
target = 9
  1. 调用函数并打印结果:
result = twoSum(nums, target)
# 带说明的打印
print("两数之和的索引结果:", result)
# 或者直接打印结果
print(result)

原代码的关键优化点

你原代码里用nums.index(secondNumber)存在两个问题:

  • 效率低下:nums.index()会遍历整个列表查找元素,对于一千个元素的列表,会让算法时间复杂度从O(n)陡增到O(n²),运行速度明显变慢。
  • 逻辑冗余:字典本身已经存储了之前遍历过的元素的索引,直接取值即可,完全不需要再调用index方法去遍历列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 19:45:56