আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা সংখ্যার একটি অ্যারে নিয়ে যায়, প্রথম আর্গুমেন্ট হিসাবে arr এবং একটি সংখ্যা, দ্বিতীয় আর্গুমেন্ট হিসাবে num বলুন৷
দ্বিতীয় আর্গুমেন্ট সবসময় অ্যারের দৈর্ঘ্যের চেয়ে ছোট বা সমান হবে। আমাদের ফাংশনটি অ্যারে থেকে ক্রমাগত উপাদানগুলির সংখ্যা খুঁজে বের করে ফেরত দিতে হবে যা সর্বাধিক যোগ করে৷
উদাহরণস্বরূপ -
যদি ইনপুট −
হয়const arr = [2,5,3,4,6]; const num = 2
উপরের ইনপুটের আউটপুটটি এইরকম হওয়া উচিত -
const output = 10
কারণ 6 এবং 4 হল সেই দুটি পরপর উপাদান যেগুলির যোগফল সর্বশ্রেষ্ঠ৷
৷আমরা একটি রৈখিক সময় এবং ধ্রুবক স্থান সমাধানে স্লাইডিং উইন্ডো কৌশল দিয়ে এই সমস্যাটি সমাধান করতে পারি।
উদাহরণ
নিম্নলিখিত কোড -
const arr = [2, 5, 3, 4, 6]; // helper function to find sum of an array const findSum = arr => arr.reduce((acc, val) => acc + val); const maximumSum = (arr = [], num = 1) => { let left = 0, right = left + num; let sum = findSum(arr.slice(left, right)); for(; right <= arr.length; right++, left++){ sum = Math.max(findSum(arr.slice(left, right)), sum); }; return sum; }; console.log(maximumSum(arr, 2)); console.log(maximumSum(arr, 3));
আউটপুট
নিম্নোক্ত কনসোলে আউটপুট -
10 12