সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা সংখ্যার একটি অ্যারে নেয়, প্রথম আর্গুমেন্ট হিসাবে এবং একটি সংখ্যা, সংখ্যা, দ্বিতীয় আর্গুমেন্ট হিসাবে।
অ্যারের সংখ্যাগুলি পরিসরে রয়েছে [1, 13], সীমা সহ, তাস খেলার 1-ভিত্তিক সূচকের প্রতিনিধিত্ব করে৷
আমাদের ফাংশন নির্ধারণ করা উচিত যে কার্ডগুলিকে গোষ্ঠীগুলিতে পুনর্বিন্যাস করার কোনও উপায় আছে কি না যাতে প্রতিটি গোষ্ঠীর আকার সংখ্যা হয় এবং পরপর সংখ্যক কার্ড থাকে৷
উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয়
ইনপুট
const arr = [1, 4, 3, 2]; const num = 2;
আউটপুট
const output = 2;
আউটপুট ব্যাখ্যা
কারণ কার্ডগুলিকে [1, 2], [3, 4]
হিসাবে পুনর্বিন্যাস করা যেতে পারেউদাহরণ
নিম্নলিখিত কোড -
const arr = [1, 4, 3, 2];
const num = 2;
const canRearrange = (arr = [], num = 1) => {
const find = (map, n, num) => {
let j = 0
while(j < num) {
if(!map[n + j]) return false
else map[n + j] -= 1
j++
}
return true
}
let map = {}
arr.sort(function(a, b) {return a - b})
for(let n of arr) {
map[n] = map[n] ? map[n] + 1 : 1
}
for(let n of arr) {
if(map[n] === 0 || find(map, n, num)) continue
else return false
}
return true
};
console.log(canRearrange(arr, num)); আউটপুট
true