আমাদের কাছে একটি সোর্টেড পজিটিভ ইন্টিজারের অ্যারে আছে নিচের মতো:
const arr = [1, 3, 6, 10, 11, 15];
আমাদের একটি ফাংশন লিখতে হবে, যেনাম findSmallest(), যা ऐसा একটি অ্যারে গ্রহণ করবে এবং সবচেয়ে ছোট পজিটিভ ইন্টিজার রিটার্ন করবে যেটি এই মূল অ্যারের যেকোনো সাব-অ্যারের সমষ্টি হিসেবে রিপ্রেজেন্ট করা যাবে না।
উদাহরণস্বরূপ:
উপরোক্ত অ্যারেতে ২ হলো সবচেয়ে ছোট পজিটিভ ইন্টিজার যেটি এই মূল অ্যারের যেকোনো সাব-অ্যারের সমষ্টি হিসেবে পাওয়া যাবে না। তাহলে, এই ফাংশনের কোড লিখি। যেহেতু অ্যারেটি সোর্টেড, আমরা এই সমস্যার সমাধান লিনিয়ার টাইমে পেতে পারি। আমরা প্রাথমিকভাবে ধরে নিই যে প্রয়োজনীয় নম্বরটি ১, কারণ ১ হলো সেটি নিতে পারে সবচেয়ে ছোট ভ্যালু। আমরা অ্যারেতে ইটারেট করব এবং প্রতিটি সংশ্লিষ্ট এলিমেন্ট প্রয়োজনীয় নম্বরের সাথে যোগ করব।
যদি যেকোনো ইটারেশনে, সংশ্লিষ্ট নম্বরটি প্রয়োজনীয় নম্বর থেকে বড় হয়, তবে মানে আমরা আমাদের প্রয়োজনীয় নম্বরটি পেয়ে গেছি, অন্যথায় আমরা ইটারেট চালিয়ে যাব।
উদাহরণ
const arr = [1, 3, 6, 10, 11, 15]; const findSmallest = arr => { let res = 1; for(let ind = 0; ind < arr.length && arr[ind] <= res; ind++){ res += arr[ind]; } return res; }; console.log(findSmallest(arr));আউটপুট
কনসোলে আউটপুট হবে:
2