Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript의 숫자 배열에서 누락된 요소 찾기

<시간/>

길이가 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