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

哈希表求解数组两数之和的时间复杂度计算是否存在错误?

两数之和哈希解法时间复杂度标注异议

我近期阅读了GeeksforGeeks平台的两数之和相关算法文章,对文中方法2(哈希法)的时间复杂度计算存在疑问:文中直接标注该方法时间复杂度为O(n),但实际正确结果应为O(n) 均摊(Amortized)。

对应算法的实现步骤如下:

  • 初始化空哈希表 s
  • 遍历数组 A 的每一个元素 A[i]:
    • 若哈希表中已存在 x - A[i] 的记录,则输出数对 (A[i], x - A[i])
    • 将当前元素 A[i] 插入哈希表 s 中

推导逻辑:

初始化哈希表的步骤时间复杂度为O(1),遍历数组总共会执行O(n)次迭代,每次迭代中的哈希表查询、插入操作的时间复杂度均为O(1) 均摊(Amortized),因此算法整体的时间复杂度为O(n) 均摊,不属于严格意义上的O(n)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 16:45:04