LeetCode 第 1 题:两数之和 - JavaScript 解答

题目描述:

给定一个整数数组 nums 和一个目标值 target,请在数组中找出和为目标值的两个整数。

你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。

示例:

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]

解题思路:

使用哈希表存储数组元素和下标的映射关系,遍历数组,判断 target 与当前元素的差值是否在哈希表中,如果存在,则返回两个元素的下标。

代码实现:

var twoSum = function(nums, target) {
    const map = new Map();
    for (let i = 0; i < nums.length; i++) {
        const complement = target - nums[i];
        if (map.has(complement)) {
            return [map.get(complement), i];
        }
        map.set(nums[i], i);
    }
};

时间复杂度: O(n)

空间复杂度: O(n)

LeetCode 第 1 题:两数之和 - JavaScript 解答

原文地址: https://www.cveoy.top/t/topic/mA7Y 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录