LeetCode 第 1 题:两数之和 - JavaScript 解答
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)
原文地址: https://www.cveoy.top/t/topic/mA7Y 著作权归作者所有。请勿转载和采集!