মাউন্টেন সাবসিকোয়েন্স
আমরা যেকোনো (সংলগ্ন) সাবঅ্যারে sub (of arr) কে একটি মাউন্টেন বলব যদি নিচের প্রপার্টিগুলো পূরণ হয় –
sub.length >= 3- যে কোনো 0 < i < sub.length - 1 আছে যাতে
sub[0] < sub[1] < ... sub[i-1] < sub[i] > sub[i+1] > ... > sub[sub.length - 1]
সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি সংখ্যার অ্যারে arr প্রথম ও একমাত্র আর্গুমেন্ট হিসেবে নেবে।
ফাংশনটি অ্যারে arr-এ বিদ্যমান সর্বোচ্চ মাউন্টেন সাবসিকোয়েন্সের দৈর্ঘ্য ফেরত দেবে, যদি কোনো থাকে, নয় তবে ০।
উদাহরণস্বরূপ, যদি ইনপুট হয় –
ইনপুট
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