সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম আর্গুমেন্ট হিসাবে আক্ষরিক, arr এর একটি অ্যারে নেয়। আমাদের ফাংশনের দ্বিতীয় আর্গুমেন্ট হবে একটি সংখ্যা, সংখ্যা। আমাদের ফাংশনকে অ্যারের সাবয়ারের সংখ্যা গণনা করা উচিত এবং ফেরত দেওয়া উচিত যাতে ঠিক সংখ্যক স্বতন্ত্র উপাদান রয়েছে৷
উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয় −
const arr = [12, 15, 12, 15, 18]; const num = 2;
তারপর আউটপুট −
হওয়া উচিতconst output = 7;
আউটপুট ব্যাখ্যা
ঠিক 2টি ভিন্ন উপাদান −
দিয়ে গঠিত সাবাররে[12,15], [15,12], [12,15], [15,18], [12,15,12], [15,12,15], [12,15,12,15]
উদাহরণ
এর জন্য কোড হবে −
const arr = [12, 15, 12, 15, 18]; const num = 2; const distinctSubarrays = (arr = [], num = 1) => { const findDistinct = (count) => { const map = {}; let ptr = 0; let distinct = 0; let res = 0; for(let right = 0; right < arr.length; right++){ const num = arr[right]; map[num] = (map[num] || 0) + 1; if(map[num] === 1){ distinct += 1; }; while(distinct > count){ map[arr[ptr]] -= 1; if(map[arr[ptr]] === 0){ distinct -= 1; }; ptr += 1; }; res += right - ptr + 1; }; return res; }; return findDistinct(num) - findDistinct(num - 1) }; console.log(distinctSubarrays(arr, num));
আউটপুট
এবং কনসোলে আউটপুট হবে −
7