কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে অ্যারেতে n সংখ্যক কনsekutিভ এলিমেন্টের সর্বোচ্চ যোগফল


আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম আর্গুমেন্ট হিসেবে সংখ্যার একটি অ্যারে, মনে করুন arr, এবং দ্বিতীয় আর্গুমেন্ট হিসেবে একটি সংখ্যা, মনে করুন num, নেয়।

দ্বিতীয় আর্গুমেন্ট সবসময় অ্যারের দৈর্ঘ্যের চেয়ে ছোট বা সমান হবে। আমাদের ফাংশনটি অ্যারেতে থেকে num সংখ্যক কনsekutিভ উপাদান খুঁজে বের করবে যাদের যোগফল সবচেয়ে বড়।

উদাহরণস্বরূপ −

ইনপুট যদি হয় −

const arr = [2,5,3,4,6]; const num = 2

উপরের ইনপুটের জন্য আউটপুট দেখাবে এমন −

const output = 10

কারণ ৬ এবং ৪ হল সে দুটি কনsekutিভ উপাদান যাদের যোগফল সর্বোচ্চ।

এই সমস্যাটি স্লাইডিং উইন্ডো টেকনিক দিয়ে লিনিয়ার টাইম এবং কনস্ট্যান্ট স্পেসে সমাধান করা যায়।

উদাহরণ

নিচে কোড দেওয়া হল −

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. জাভাস্ক্রিপ্টে সাবঅ্যারেতে ম্যাক্সিমাম কন্টiguous সম বের করা

  4. জাভাস্ক্রিপ্টে অ্যারেতে নির্দিষ্ট যোগফল ও দৈর্ঘ্যের গোষ্ঠী বের করা