题目描述:

给定一个整数数组 nums 和一个目标值 target,请在该数组中找出和为目标值的两个整数,并返回它们的数组下标。

示例:

输入:nums = [2, 7, 11, 15], target = 9 输出:[0, 1] 解释:nums[0] + nums[1] = 2 + 7 = 9,因此返回 [0, 1]。

解题思路:

使用哈希表,遍历数组,将数组中的每个元素作为哈希表的键,其下标作为哈希表的值。对于每个元素,判断 target 与该元素的差值是否在哈希表中,如果在,则返回该差值的下标和该元素的下标。

代码实现:

var twoSum = function(nums, target) { let 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)

用 js解答下 leetcode 第一题

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

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