पर्वत उपअनुक्रम
हम सरणी arr के किसी भी (सन्निकट) उपसरणी sub को पर्वत कहते हैं यदि निम्नलिखित गुण लागू होते हैं -
sub.length >= 3- कुछ
0 < i < sub.length - 1मौजूद है जैसे किsub[0] < sub[1] < ... sub[i-1] < sub[i] > sub[i+1] > ... > sub[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