1. 两数之和

哈希

解题思路

  1. 迭代 nums 并将 <nums[i], inx> 放入 hash 中;

  2. 放入之前,会对其寻找 targte - nums[i] 是否已经存在于 hash 表中;

    • 不存在直接将 nums[i] 放入 hash
    • 存在则直接获取索引,直接返回即可;

复杂度

  1. 时间复杂度:O(N),其中 N 是数组中的元素数量;对于每一个元素 x 我们可以 O(1) 地寻找 target - x

  2. 空间复杂度:O(N)

代码实现

var twoSum = function (nums, target) {
    const hash = new Map();

    for (let i = 0; i < nums.length; i++) {
        if (hash.has(target - nums[i])) {
            return [i, hash.get(target - nums[i])];
        }
        hash.set(nums[i], i);
    }
};

参考资料

  1. 卡尔:《代码随想录》

打赏作者
您的打赏是我前进的动力
微信
支付宝
评论

中午好👏🏻,我是 ✍🏻   疯狂 codding 中...

粽子

这有关于前端开发的技术文档和你分享。

相信你可以在这里找到对你有用的知识和教程。

了解更多

目录

  1. 1. 哈希
    1. 1.1. 解题思路
    2. 1.2. 复杂度
    3. 1.3. 代码实现
  2. 2. 参考资料