Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ความยาวสูงสุดของภูเขาในอาร์เรย์โดยใช้ JavaScript


ขุนเขา

เราเรียก subarray subarray subarray (ของ arr) ใด ๆ (ที่อยู่ติดกัน) ว่าภูเขา หากคุณสมบัติดังต่อไปนี้ถือครอง -

  • sub.length>=3

  • มี 0 B[i+1]> ...> ย่อย[sub.length - 1]

ปัญหา

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลข arr เป็นอาร์กิวเมนต์แรกและอาร์กิวเมนต์เดียว

ฟังก์ชันของเราควรจะส่งคืนความยาวของการเรียงซ้อนของภูเขาที่ยิ่งใหญ่ที่สุดที่มีอยู่ในอาร์เรย์ arr หากมีอยู่ มิฉะนั้น 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