길이가 n인 배열을 취하는 JavaScript 함수를 작성해야 합니다. 배열에는 0에서 n(0과 n 모두 포함)까지의 모든 정수가 포함되지만 하나의 정수만 누락되어 임의의 숫자가 될 수 있으며 배열이 정렬되지 않습니다. 우리 함수의 임무는 누락된 숫자를 찾아 선형 시간 및 일정 공간에서 반환하는 것입니다.
배열은 0에서 n까지의 모든 숫자를 포함하지만 1을 제외하기 때문에 선형 시간으로 배열의 모든 요소의 합을 간단히 계산할 수 있습니다.
그리고 나서 일정하지 않은 시간과 공간을 계산할 수 있는 처음 n개의 자연수의 합에서 그것을 뺄 수 있습니다. 둘 사이의 차이가 누락된 숫자가 됩니다.
예시
다음은 코드입니다 -
const arr = [3, 7, 8, 10, 11, 0, 2, 6, 1, 4, 5]; const findMissing = (arr = []) => { const sum = arr.reduce((acc, val) => acc + val); const { length: num } = arr; const correctSum = (num * (num + 1)) / 2; return diff = correctSum - sum; return diff; }; console.log(findMissing(arr));
출력
다음은 콘솔 출력입니다 -
9