সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি সংখ্যা অ্যারে (arr) নেবে। একটি মুভ মানে যেকোনো arr[i] বেছে নিয়ে সেটি ১ বাড়ানো। ফাংশনটি ন্যূনতম কতগুলো মুভ দিয়ে অ্যারে-এর সব মান ইউনিক করা যায় তা রিটার্ন করবে।
উদাহরণস্বরূপ, ইনপুট যদি হয় –
const arr = [12, 15, 7, 15];
তবে আউটপুট হবে –
const output = 1;
আউটপুট ব্যাখ্যা
কারণ যেকোনো একটি ১৫ কে ১৬ করলে অ্যারে-এ সব এলিমেন্ট ইউনিক হয়ে যাবে।
উদাহরণ
কোডটি নিচের মতো –
const arr = [12, 15, 7, 15]; const makeUnique = (arr = []) => { arr.sort((a, b) => a - b); let count = 0; for (let i = 1; i < arr.length; i++) { if (arr[i] <= arr[i - 1]) { const temp = arr[i]; arr[i] = arr[i - 1] + 1; count += arr[i] - temp; }; }; return count; }; console.log(makeUnique(arr));আউটপুট
কনসোলে আউটপুট হবে –
1