কম্পিউটার

জাভাস্ক্রিপ্টে অ্যারের n ধারাবাহিক উপাদানের সর্বোচ্চ যোগফল


আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা সংখ্যার একটি অ্যারে নিয়ে যায়, প্রথম আর্গুমেন্ট হিসাবে 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

  1. ডাইনামিক প্রোগ্রামিং - জাভাস্ক্রিপ্ট উপাদানের অংশ সমষ্টি

  2. জাভাস্ক্রিপ্টে অ্যারের বিকল্প উপাদানের যোগফল খুঁজে বের করা

  3. জাভাস্ক্রিপ্টে সাবয়ারের সর্বাধিক সংলগ্ন যোগফল

  4. জাভাস্ক্রিপ্টে একটি অ্যারেতে উপাদানগুলির পছন্দসই যোগফল খোঁজা