সমস্যা বিবৃতি
N পূর্ণসংখ্যার একটি অ্যারে arr[] দেওয়া হয়েছে। কাজটি হল প্রথমে সর্বাধিক সাব-অ্যারে যোগফল খুঁজে বের করা এবং তারপর সাব-অ্যারে থেকে সর্বাধিক একটি উপাদান সরিয়ে ফেলা। সর্বাধিক একটি একক উপাদান সরান যাতে অপসারণের পরে সর্বাধিক যোগফল সর্বাধিক হয়৷
যদি দেওয়া ইনপুট অ্যারে হয় {1, 2, 3, -2, 3} তাহলে সর্বাধিক সাব-অ্যারের যোগফল হল {2, 3, -2, 3}। তারপর আমরা -2 অপসারণ করতে পারি। অপসারণের পরে অবশিষ্ট অ্যারে হয়ে যায়−
{1, 2, 3, 3} যোগফল 9 সহ যা সর্বাধিক।
অ্যালগরিদম
<পূর্ব>1. সর্বোচ্চ সাবারে যোগফল 2 খুঁজে পেতে Kadane এর অ্যালগরিদম ব্যবহার করুন। একবার যোগফল খুঁজে পাওয়া গেলে, কিছু ছোট পরিবর্তনের সাথে আবার সর্বোচ্চ যোগফল খুঁজে পেতে Kadane-এর অ্যালগরিদম পুনরায় প্রয়োগ করুন)উদাহরণ
#includeনেমস্পেস ব্যবহার করে std;int getMaxSubarraySum(int *arr, int n){ int max =INT_MIN; int currentMax =0; জন্য (int i =0; i আউটপুট
আপনি যখন উপরের প্রোগ্রামটি কম্পাইল এবং এক্সিকিউট করবেন। এটি নিম্নলিখিত আউটপুট-
তৈরি করেসর্বোচ্চ যোগফল =9