আমাদেরকে একটি অ্যারে দেওয়া হয়েছে [] যার মধ্যে শুধুমাত্র 0 এবং 1 রয়েছে। লক্ষ্য হল arr[]-এর সমস্ত সাব্যারে গণনা করা যাতে 0s এবং 1s-এর ঘটনা সব মিলিয়ে সমান হয়। যদি অ্যারেটি [1,0,0] হয়। সাবারে শুধুমাত্র [1,0] হবে।
আসুন উদাহরণ দিয়ে বুঝতে পারি।
ইনপুট − arr[] ={ 0, 0, 1, 1, 1, 0 };
আউটপুট − 1 এবং 0 এর সমান সংখ্যা সহ সাবয়ারের সংখ্যা হল − 4
ব্যাখ্যা − সুবারায় −
হবেarr[0 to 3] = [0,0,1,1], arr[1 to 2] = [0,1], arr[4 to 5] =[1,0], Arr[0 to 5] =[0,0,1,1,1,0].
ইনপুট − arr[] ={ 0, 1, 1, 1, 1 };
আউটপুট − 1 এবং 0 এর সমান সংখ্যা সহ সাবয়ারের সংখ্যা হল − 1
ব্যাখ্যা − সুবারায় − arr[0 থেকে 1] =[0,1]
হবেনিচের প্রোগ্রামে ব্যবহৃত পদ্ধতিটি নিম্নরূপ
আমরা সম্ভাব্য সমস্ত সাব্যারে তৈরি করতে টু লুপ ব্যবহার করে অ্যারেটি অতিক্রম করব। i=0 থেকে i<=size-1 এবং j=i থেকে j<=size-1। গঠিত সাব্যারেগুলি হবে arr[i] থেকে arr[j] এর মধ্যে। প্রতিটি সাবয়ারে 0 এবং 1 এর ফ্রিকোয়েন্সি গণনা করুন। সমান হলে গণনা বৃদ্ধি করুন।
-
সংখ্যার একটি অ্যারে অ্যারে নিন।
-
ফাংশন sub_zeroes_ones(int arr[], int size) অ্যারে নেয় এবং সমান সংখ্যা সহ সাবয়ারের গণনা প্রদান করে। 0 এবং 1 এর মধ্যে।
-
0 হিসাবে প্রাথমিক গণনা নিন।
-
আমরা i=0 থেকে i<=size-1 এবং j=0 থেকে j<=size-1 পর্যন্ত লুপের জন্য দুটি ব্যবহার করে অ্যারেটি অতিক্রম করব।
-
মোট_0 দুটি ভেরিয়েবল নিন, 0 এর সংখ্যার জন্য 0 হিসাবে total_1 এবং 1 এর সাবঅ্যারে অ্যারে [i] থেকে arr[j]।
-
0 এবং 1 এর সাথে arr[j] তুলনা করুন। যদি arr[j] 0 বা 1 হয় তাহলে সংশ্লিষ্ট গণনা বৃদ্ধি করুন ( total_0 বা total_1)।
-
মোট_0==মোট_1 হলে। বৃদ্ধির সংখ্যা। (সাব্যারেতে উপাদান হিসাবে 0 এবং 1 এর সমান সংখ্যা রয়েছে)।
-
উভয় লুপের শেষে, ফলাফল হিসাবে গণনা করুন।
উদাহরণ
#include <bits/stdc++.h> using namespace std; int sub_zeroes_ones(int arr[], int size){ int count = 0; for (int i = 0; i <= size - 1; i++){ int total_0 = 0; int total_1 = 0; for (int j = i; j <= size - 1; j++){ if (arr[j] == 0){ total_0++; } else if (arr[j] == 1){ total_1++; } if(total_0 == total_1){ count++; } } } return count; } int main(){ int arr[] = {0, 1, 1, 0, 0}; int size = sizeof(arr)/sizeof(arr[0]); cout<<"Count of subarrays with equal number of 1’s and 0’s are: "<<sub_zeroes_ones(arr, size); }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেCount of subarrays with equal number of 1’s and 0’s are: 4