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

하위 배열 JavaScript의 합으로 나타낼 수 없는 가장 작은 양수 값

<시간/>

다음과 같이 양의 정수로 구성된 정렬된 배열이 있습니다. -

const arr = [1, 3, 6, 10, 11, 15];

우리는 함수를 작성해야 합니다. 예를 들어 findSmallest()는 이러한 배열 중 하나를 받아서 이 원래 배열의 일부 하위 배열의 합으로 나타낼 수 없는 가장 작은 양의 정수를 반환합니다.

예를 들어 -

2 위에 작성된 이 배열의 경우 이 원래 배열의 하위 배열을 합산하여 도달할 수 없는 가장 작은 양의 정수입니다. 이제 이 함수에 대한 코드를 작성해 보겠습니다. 배열이 정렬되면 선형 시간 내에 이 문제에 대한 솔루션을 얻을 수 있습니다. 1이 취할 수 있는 가장 작은 값이기 때문에 처음에는 필요한 숫자가 1이라고 생각합니다. 배열을 반복하고 해당 요소를 requirednumber에 계속 추가합니다.

반복에서 해당 숫자가 필요한 수보다 크면 필요한 수를 찾았음을 의미합니다. 그렇지 않으면 계속 반복합니다.

예시

const arr = [1, 3, 6, 10, 11, 15];
const findSmallest = arr => {
   let res = 1;
   for(let ind = 0; ind < arr.length && arr[ind] <= res; ind++){
      res += arr[ind];
   }
   return res;
};
console.log(findSmallest(arr));

출력

콘솔의 출력은 -

2