বিল্ড আপ
ধরুন আমাদের JavaScript-
-এ নিম্নলিখিত অ্যারে আছেconst arr = [4, 3, 4, 7, 5, 2, 3, 4, 3, 2, 3, 4];
যদি আমরা এই অ্যারের বিন্দুগুলিকে y-অক্ষে প্লট করি এবং প্রতিটি সন্নিহিত বিন্দু একক দূরত্ব অনএক্স-অক্ষ থেকে দূরে থাকে, তাহলে গ্রাফটি এরকম দেখাবে −
এই গ্রাফটি স্পষ্টভাবে দেখায় যে এই অ্যারেতে যথাক্রমে 7 এবং 4 মান সহ সূচক 3 এবং 7-এ দুটি স্থানীয় ম্যাক্সিমা (শিখর) রয়েছে৷
সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা পূর্ণসংখ্যার একটি অ্যারে নেয়, arr, প্রথম এবং একমাত্র যুক্তি হিসাবে।
আমাদের ফাংশনটি এমন একটি বস্তুকে ফেরত দেওয়ার অনুমিত হয় যাতে দুটি বৈশিষ্ট্য, ম্যাক্সিমাস এবং অবস্থান থাকে৷
এই উভয় বৈশিষ্ট্যই অ্যারে হবে, এবং ম্যাক্সিমা অ্যারে অ্যারের স্থানীয় ম্যাক্সিমাসের মান ধারণ করবে এবং অবস্থান অ্যারেতে তাদের সংশ্লিষ্ট সূচক থাকবে।
উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয় −
অতএব, উপরের অ্যারের জন্য, আউটপুটটি −
এর মত হওয়া উচিত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 ] }