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

JavaScript를 사용하는 배열의 최대 산 길이

<시간/>

마운틴 서브시퀀스

다음 속성이 유지되는 경우 (arr의) 모든 (인접한) 하위 배열을 산이라고 부릅니다. -

  • 하위 길이>=3

  • sub[0] B[i+1]> ...> 와 같은 0

문제

첫 번째이자 유일한 인수로 숫자 배열, arr를 취하는 JavaScript 함수를 작성해야 합니다.

우리의 함수는 배열 arr에 존재하는 가장 큰 산 부분 시퀀스의 길이를 반환해야 합니다(있는 경우 존재하면 0, 그렇지 않으면 0).

예를 들어 함수에 대한 입력이

인 경우

입력

const arr = [3, 2, 5, 8, 4, 3, 6];

출력

const output = 5;

출력 설명

원하는 하위 배열이 -

이기 때문에
[2, 5, 8, 4, 3]

예시

다음은 코드입니다 -

const arr = [3, 2, 5, 8, 4, 3, 6];
const mountainLength = (arr = []) => {
   let max = 0
   for(let left = 0; left < arr.length; left++) {
      let right = left
      while(arr[right] < arr[right + 1]) {
         right++
      }
      const top = right
      while(right > left && arr[right] > arr[right + 1]) {
         right++
      }
      if(right > top && top > left) {
         max = Math.max(max, right - left + 1)
         left = right
         left--
      }
   }
   return max
}
console.log(mountainLength(arr));

출력

5