Computer >> Máy Tính >  >> Lập trình >> Javascript

Độ dài tối đa của ngọn núi trong một mảng sử dụng JavaScript

Trình tự núi

Chúng tôi gọi bất kỳ mảng con (tiếp giáp) nào (của arr) là một ngọn núi nếu các thuộc tính sau giữ -

  • sub.length> =3

  • Tồn tại một số 0 B [i + 1]> ...> sub [sub.length - 1]

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript lấy một mảng số, arr, làm đối số đầu tiên và duy nhất.

Hàm của chúng ta phải trả về độ dài của dãy con núi lớn nhất hiện diện trong mảng arr, nếu có tồn tại bất kỳ, nếu không thì là 0.

Ví dụ:nếu đầu vào của hàm là

Đầu vào

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

Đầu ra

const output = 5;

Giải thích đầu ra

Bởi vì mảng con mong muốn là -

[2, 5, 8, 4, 3]

Ví dụ

Sau đây là mã -

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));

Đầu ra

5