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

선형 시간 JavaScript의 배열에서 첫 번째 중복 항목 찾기

<시간/>

1과 n 사이의 n + 1 정수의 읽기 전용 배열을 취하는 JavaScript 함수를 작성해야 합니다.

함수는 선형 시간으로 반복되고 최대 O(n) 공간을 사용하는 하나의 숫자를 찾아야 합니다.

예를 들어 입력 배열이 -

인 경우
const arr = [3 4 1 4 1];

그러면 출력은 다음과 같아야 합니다. -

const output = 1;

위와 같은 답변이 여러 개 있는 경우 아무거나 출력해야 합니다. 중복이 없으면 -1을 출력해야 합니다.

예시

const arr = [3, 4, 1, 4, 1];
const findRepeatedNumber = (arr = []) => {
   const set = new Set();
   for (const item of arr) {
      if (set.has(item)){
         return item;
      };
      set.add(item);
   };
   return -1;
};
console.log(findRepeatedNumber(arr));

출력

이것은 다음과 같은 출력을 생성합니다 -

4