ขุนเขา
เราเรียก 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