हमें एक सरणी गिरफ्तारी [] दी गई है जिसमें केवल 0 और 1 है। लक्ष्य गिरफ्तारी [] के सभी उप-सरणी को गिनना है जैसे कि 0 और 1 की घटनाएँ सभी में समान हैं। यदि सरणी [1,0,0] है। Subarray केवल [1,0] होगी।
आइए उदाहरणों से समझते हैं।
इनपुट - एआर [] ={ 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].
इनपुट - एआर [] ={ 0, 1, 1, 1, 1};
आउटपुट − 1 और 0 की समान संख्या वाली उपसरणियों की संख्या है - 1
स्पष्टीकरण - सुबारे होंगे - arr[0 to 1] =[0,1]
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
हम सभी संभव सबएरे उत्पन्न करने के लिए लूप के लिए दो का उपयोग करके सरणी को पार करेंगे। i=0 से i<=size-1 और j=i से j<=size-1 तक। गठित उप-सरणी गिरफ्तारी [i] से गिरफ्तारी [जे] के बीच होगी। प्रत्येक उप-सरणी में 0 और 1 की आवृत्ति गिनें। अगर बराबर है तो गिनती बढ़ाएँ।
-
संख्याओं की एक सरणी गिरफ्तारी [] लें।
-
फ़ंक्शन sub_zeroes_ones(int arr[], int size) सरणी लेता है और बराबर संख्या के साथ सबएरे की गिनती देता है। 0 और 1 के।
-
प्रारंभिक गणना 0 के रूप में लें।
-
हम i=0 से i<=size-1 और j=0 से j<=size-1 तक दो for लूप का उपयोग करके सरणी को पार करेंगे।
-
उप-सरणी arr[i] से arr[j] में 0 और 1 की संख्या के लिए दो चर Total_0, Total_1 को 0 के रूप में लें।
-
arr[j] की 0 और 1 से तुलना करें। अगर 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