কম্পিউটার

C++ এ একটি সাবয়ারে ফ্লিপ করে 0 এর সংখ্যা সর্বাধিক করুন


সমস্যা বিবৃতি

একটি বাইনারি অ্যারে দেওয়া হয়েছে, অনুমোদিত সাবয়ারের একটি ফ্লিপ সহ একটি অ্যারেতে সর্বাধিক সংখ্যক শূন্য খুঁজুন। একটি ফ্লিপ অপারেশন সমস্ত 0s থেকে 1s এবং 1s থেকে 0s

পর্যন্ত পরিবর্তন করে

যদি arr1={1, 1, 0, 0, 0, 0, 0}

যদি আমরা প্রথমে 2 1’s থেকে 0’s ফ্লিপ করি, তাহলে আমরা নিম্নরূপ 7 সাইজের সাব্যারে পেতে পারি -

{0, 0, 0, 0, 0, 0, 0}

অ্যালগরিদম

<পূর্ব>1. সমস্ত সাবঅ্যারে বিবেচনা করুন এবং (1s-এর গণনা)- (0s-এর গণনা)2-এর সর্বাধিক মান সহ একটি সাবঅ্যারে খুঁজুন। এই মানটিকে maxDiff হিসেবে বিবেচনা করে। অবশেষে আসল অ্যারে + maxDiff-এ শূন্যের সংখ্যা ফেরত দিন।

উদাহরণ

#include নেমস্পেস ব্যবহার করে std;int getMaxSubArray(int *arr, int n){ int maxDiff =0; int zeroCnt =0; জন্য (int i =0; i 
 

            
  1. C++ এ একটি সাবয়ারে ফ্লিপ করে 0 এর সংখ্যা সর্বাধিক করুন

  2. C++ এ পাটিগণিত সংখ্যা

  3. C++ এ আর্গুমেন্টের পরিবর্তনশীল সংখ্যা

  4. C++ এ CHAR_BIT