बिल्ड अप
मान लीजिए कि हमारे पास जावास्क्रिप्ट में निम्नलिखित सरणी है -
const arr = [4, 3, 4, 7, 5, 2, 3, 4, 3, 2, 3, 4];
यदि हम इस सरणी के बिंदुओं को y-अक्ष पर प्लॉट करते हैं, जिसमें प्रत्येक आसन्न बिंदु ऑनएक्स-अक्ष से इकाई दूरी पर होता है, तो ग्राफ़ इस तरह दिखेगा -
यह ग्राफ़ स्पष्ट रूप से दिखाता है कि इस सरणी में इंडेक्स 3 और 7 पर दो स्थानीय मैक्सिमा (शिखर) मौजूद हैं, जिनका मान क्रमशः 7 और 4 है।
समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो पूर्णांकों की एक सरणी लेता है, गिरफ्तारी, पहले और एकमात्र तर्क के रूप में।
हमारा कार्य एक ऐसी वस्तु को वापस करने वाला है जिसमें दो गुण, मैक्सिमा और स्थिति शामिल हैं।
ये दोनों गुण सरणियाँ होंगे, और मैक्सिमा सरणी में सरणी में लोकलमैक्सिमा का मान होगा और स्थिति सरणी में उनके संबंधित सूचकांक होंगे।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
इसलिए, उपरोक्त सरणी के लिए, आउटपुट इस तरह दिखना चाहिए -
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 ] }