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

two-sum两数之和问题代码逻辑错误排查及正确实现求助

两数之和代码问题排查与实现

原代码逻辑错误

  • 结果列表初始化位置错误:l = []放在for循环内部,每次遍历新元素时都会清空之前的存储结果,最终仅能保留最后一次符合判断条件的单个下标
  • 仅存储当前元素下标,未获取补数下标:判断X-A[i]存在后,仅将当前下标i加入列表,没有记录补数对应的下标,无法返回成对的结果
  • 未处理重复匹配与自身匹配问题:没有排除当前元素自身和自身匹配的场景,也没有避免同一个组合被重复识别的问题

正确实现

以下实现基于哈希表,时间复杂度O(n),可以直接返回符合条件的两个元素下标:

def find2Sum(A, X):
    # 哈希表存储已遍历的元素值与对应下标
    num_index_map = {}
    for idx, num in enumerate(A):
        complement = X - num
        if complement in num_index_map:
            # 匹配到结果直接返回两个下标
            return [num_index_map[complement], idx]
        # 未匹配到则将当前元素存入哈希表
        num_index_map[num] = idx
    # 无匹配结果返回空列表
    return []

nums = [1,4,6,44, 9,8]
target = 14
print(find2Sum(nums, target))

运行上述代码输出结果为[2, 5],对应元素6和8,和为14,符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 17:51:01