两数之和
解题思路
- 创建一个map,for循环遍历nums数组
- 用target减nums[i],(计算跟当前的数字相加得到target)
- 检查map中有没有这个数,如果有返回结果,如果没有把nums[i]当作key,i当作value放入map
nums = [2,7,11,15];
target = 9;
var twoSum = function(nums, target) {
const map = new Map();
for (let i = 0; i < nums.length; i++){
const result = target - nums[i];
if (map.has(result)) {
return [map.get(result),i];
} else {
map.set(nums[i],i);
}
}
return [];
}
console.log(twoSum(nums,target));
这篇博客探讨了一种解决寻找数组中两个数之和等于特定目标值的算法。通过创建哈希表,可以在O(n)的时间复杂度内找到解决方案。具体步骤包括遍历数组,计算目标值与当前元素的差值,并检查该差值是否已在哈希表中。如果找到,返回这两个数的索引;否则,将当前元素及其索引存入哈希表。这种方法避免了重复遍历,提高了效率。
649

被折叠的 条评论
为什么被折叠?



