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

JavaScript에서 오름차순 배열 확인

<시간/>

정수 시퀀스가 ​​배열로 주어지면 배열에서 요소를 하나만 제거하여 엄격하게 증가하는 시퀀스를 얻을 수 있는지 확인합니다.

참고:시퀀스 a0, a1, ..., an은 a0

예를 들어 sequence =[1, 3, 2, 1]의 경우 출력은 -

여야 합니다.
almostIncreasingSequence(sequence) = false.

이 배열에는 엄격하게 증가하는 시퀀스를 얻기 위해 제거할 수 있는 요소가 없습니다.

시퀀스 =[1, 3, 2]의 경우 출력은 -

여야 합니다.
almostIncreasingSequence(sequence) = true.

엄격하게 증가하는 시퀀스 [1, 2]를 얻기 위해 배열에서 3을 제거할 수 있습니다. 또는 2를 제거하여 엄격하게 증가하는 시퀀스[1, 3]를 얻을 수 있습니다.

예시

이에 대한 코드는 -

const arr1 = [3, 5, 67, 98, 3];
const arr2 = [4, 3, 5, 67, 98, 3];
const almostIncreasingSequence = sequence => {
   let removed = 0;
   let i = 0;
   let prev = -Infinity;
   while(removed < 2 && i < sequence.length) {
      if(sequence[i] > prev) {
         prev = sequence[i];
      }else{
         prev = Math.min(prev, sequence[i]);
         removed++;
      }
      i++;
   }
   return removed < 2;
};
console.log(almostIncreasingSequence(arr1));
console.log(almostIncreasingSequence(arr2));

출력

콘솔의 출력은 다음과 같습니다. -

true
false