Мне нужна помощь, чтобы понять, что и как использовать карты sh в javascript. У меня есть пример, где Учитывая массив целых чисел, вернуть индексы двух чисел так, чтобы они складывались в конкретную c цель.
Вы можете предположить, что каждый вход будет иметь только одно решение, и вы может не использовать один и тот же элемент дважды.
Может кто-нибудь разбить, что делает это решение hashmap и почему он лучше? Также, если кому-то будет достаточно, чтобы дать мне аналогичную проблему для практики, это было бы чрезвычайно полезно.
Заданные числа = [2, 7, 11, 15], цель = 9,
Поскольку числа [0] + числа [1] = 2 + 7 = 9, вернуть [0, 1].
My BruteForce Solution
for (var i = 0; i < nums.length; i++) {
for (var j = i + 1; j < nums.length; j++) {
if (nums[i] + nums[j] === target) {
result.push(i);
result.push(j);
}
}
}
return result;
}
console.log(twoSum([2, 7, 11, 15], 9));
HashMapSolution
function twoSumBest(array, target) {
const numsMap = new Map();
for (let i = 0; i < array.length; i++) {
if(numsMap.has(target - array[i])) {
return [numsMap.get(target - array[i], i)];
// get() returns a specified element associated with the specified key from the Map object.
} else {
numsMap.set(array[i], i);
// set() adds or updates an element with a specified key and value to a Map object.
}
}
}