আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি সংখ্যার অ্যারে গ্রহণ করবে, যার দৈর্ঘ্য বলে n। এই অ্যারেতে 0 থেকে n পর্যন্ত সব পূর্ণসংখ্যা থাকবে (0 এবং n উভয়ই অন্তর্ভুক্ত), কিন্তু শুধু একটি পূর্ণসংখ্যা অনুপস্থিত থাকবে। অ্যারিটি সর্ট করা নয়। আমাদের ফাংশনের কাজ হবে রৈখিক সময় (linear time) এবং ধ্রুবক স্থান (constant space) কমপ্লেক্সিটিতে অনুপস্থিত সংখ্যাটি খুঁজে বের করে রিটার্ন করা।
যেহেতু অ্যারেতে 0 থেকে n পর্যন্ত সব সংখ্যা আছে শুধু একটি বাদে, আমরা সহজেই অ্যারেতে থাকা সব উপাদানের যোগফল রৈখিক সময়ে বের করতে পারি।
তারপর প্রথম n প্রাকৃতিক সংখ্যার যোগফল, যা ধ্রুবক সময় ও স্থানেই গণনা করা যায়, তার সাথে বিয়োগ করলে পার্থক্যটি হবে আমাদের চাওয়া অনুপস্থিত সংখ্যা।
উদাহরণ
নিচের কোডটি দেখুন:
const arr = [3, 7, 8, 10, 11, 0, 2, 6, 1, 4, 5];
const findMissing = (arr = []) => {
const sum = arr.reduce((acc, val) => acc + val);
const { length: num } = arr;
const correctSum = (num * (num + 1)) / 2;
return diff = correctSum - sum;
return diff;
};
console.log(findMissing(arr));
আউটপুট
কনসোল আউটপুট:
9