1.两数之和
两数之和
解题
我首先想到的是暴力解法,就是对数组嵌套循环(时间复杂度是 O(n²)):
我首先想到的方法
肯定有更好的办法
看到评论区有人说用逆向解法,用target减去数组中的一个数,然后判断得到的结果是否在数组中
var twoSum = function(nums, target) {
map = new Map()
for(let i = 0; i < nums.length; i++) {
x = target - nums[i]
if(map.has(x)) {
return [map.get(x),i]
}
map.set(nums[i],i)
}
};
var twoSum = function (nums, target) {
let hash = {};
for (let i = 0; i < nums.length; i++) {
if (hash[target - nums[i]] !== undefined) {
return [i, hash[target - nums[i]]];
}
hash[nums[i]] = i;
}
return [];
};











网友评论