সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম এবং একমাত্র আর্গুমেন্ট হিসাবে সংখ্যার একটি অ্যারে নেয়।
আমাদের ফাংশনটি অ্যারে অ্যারের একটি (সংলগ্ন) সাবয়ারের সবচেয়ে ছোট সম্ভাব্য দৈর্ঘ্য খুঁজে পাওয়ার কথা, যেটির পুরো অ্যারের মতো যেকোনো উপাদানের একই সর্বাধিক ফ্রিকোয়েন্সি রয়েছে।
উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয়
ইনপুট
const arr = [55, 77, 77, 88, 55];
আউটপুট
const output = 2;
আউটপুট ব্যাখ্যা
ইনপুট অ্যারেতে 2 এর যেকোনো উপাদানের জন্য সর্বাধিক ফ্রিকোয়েন্সি রয়েছে কারণ 55 এবং 77 উভয় উপাদানই দুইবার প্রদর্শিত হয়।
পুরো অ্যারের হিসাবে সবচেয়ে বেশি ফ্রিকোয়েন্সি আছে এমন সাব্যারেগুলির মধ্যে সবচেয়ে ছোট দৈর্ঘ্য হল 2। তাই, আমরা 2 ফেরত দিই।
উদাহরণ
নিম্নলিখিত কোড -
const arr = [55, 77, 77, 88, 55]; const shortestLength = (arr) => { let freq = 0 let len = Infinity arr.reduce((acc, num, index) => { if (acc[num] !== undefined) { acc[num].freq += 1 acc[num].range[1] = index } else { acc[num] = { freq: 0, range: [index, index], } } if (acc[num].freq > freq) { freq = acc[num].freq len = acc[num].range[1] - acc[num].range[0] + 1 } else if (acc[num].freq === freq) { len = Math.min( len, acc[num].range[1] - acc[num].range[0] + 1, ) } return acc }, {}) return len }; console.log(shortestLength(arr));
আউটপুট
2