बिल्ड अप
मान लीजिए हमारे पास JavaScript में निम्नलिखित सरणी है -
const arr = [4, 3, 4, 7, 5, 2, 3, 4, 3, 2, 3, 4];
यदि हम इस सरणी के बिंदुओं को y-अक्ष पर प्लॉट करते हैं, जिसमें प्रत्येक आसन्न बिंदु x-अक्ष पर इकाई दूरी पर होता है, तो ग्राफ इस तरह दिखेगा -

यह ग्राफ स्पष्ट रूप से दिखाता है कि इस सरणी में इंडेक्स 3 और 7 पर मान 7 और 4 के साथ दो स्थानीय अधिकतम (पीक) मौजूद हैं।
समस्या
हमें एक JavaScript फ़ंक्शन लिखना है जो पूर्णांकों की एक सरणी, arr, को पहला और एकमात्र तर्क के रूप में लेता है।
हमारा फ़ंक्शन एक ऑब्जेक्ट वापस करने वाला है जिसमें दो प्रॉपर्टीज, maximas और positions होंगी।
ये दोनों प्रॉपर्टीज सरणी होंगी, और maximas सरणी में सरणी में स्थानीय अधिकतम के मान होंगे और positions सरणी में उनके संबंधित इंडेक्स होंगे।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
इसलिए, उपरोक्त सरणी के लिए, आउटपुट इस तरह दिखना चाहिए -
const output = { maximas: [7, 4], positions: [3, 7] };
उदाहरण
निम्नलिखित कोड है -
const arr = [4, 3, 4, 7, 5, 2, 3, 4, 3, 2, 3, 4];
const findMaxima = (arr = []) => {
let positions = [];
let maximas = [];
for (let i = 1; i < arr.length - 1; i++) {
if (arr[i] > arr[i - 1]) {
if (arr[i] > arr[i + 1]) {
positions.push(i);
maximas.push(arr[i]);
} else if (arr[i] === arr[i + 1]) {
let temp = i;
while (arr[i] === arr[temp]) i++;
if (arr[temp] > arr[i]) {
positions.push(temp);
maximas.push(arr[temp]);
}
}
}
}
return { maximas, positions };
};
console.log(findMaxima(arr));
आउटपुट
तब आउटपुट होना चाहिए -
{ maximas: [ 7, 4 ], positions: [ 3, 7 ] }