숫자 배열을 첫 번째 인수로, 목표 합계를 두 번째 인수로 취하는 JavaScript 함수를 작성해야 합니다.
함수는 목표 합계(있는 경우)를 제공하기 위해 합산되는 배열(연속 또는 비연속)에서 이러한 두 숫자의 인덱스를 찾아서 반환해야 합니다. 조건은 이것을 선형 시간(1회 반복)으로 수행해야 한다는 것입니다.
우리는 지도를 사용하여 반복되는 숫자의 수를 세고, 어느 지점에서든 목표 합계를 제공하는 두 개의 숫자를 만나면 즉시 반환합니다.
예시
이에 대한 코드는 -
const arr = [1, 3, 5, 7, 9, 11]; const target = 16; const twoSum = function(arr, target) { const map = new Map(); for(let i = 0; i < arr.length; i++) { let num = arr[i]; if(map.get(num) === undefined){ map.set(target−num, i) }else{ return [map.get(num), i] }; }; }; console.log(twoSum(arr, target));
출력
콘솔의 출력은 -
[3, 4]