हमें एक सरणी arr[] दी गई है जिसमें केवल 0's और 1's हैं। लक्ष्य arr[] के उन सभी सबएरे की गिनती करना है जिनमें सभी में 0's और 1's की घटनाएं समान हों। यदि सरणी [1,0,0] है। सबएरे केवल [1,0] होगा।
उदाहरण सहित समझ
इनपुट - arr[] = { 0, 0, 1, 1, 1, 0 };
आउटपुट - समान संख्या में 1's और 0's वाले सबएरे की संख्या: 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's और 0's वाले सबएरे की संख्या: 1
व्याख्या - सबएरे होंगे: arr[0 to 1] = [0,1]
प्रोग्राम में उपयोग किया गया दृष्टिकोण
हम सभी संभावित सबएरे उत्पन्न करने के लिए दो फॉर लूप का उपयोग करके सरणी को ट्रैवर्स करेंगे। i=0 से i<=size-1 और j=i से j<=size-1 तक। बने सबएरे arr[i] से arr[j] के बीच होंगे। प्रत्येक सबएरे में 0 और 1 की आवृत्ति गिनें। यदि समान हैं तो काउंट बढ़ाएँ।
- संख्याओं की एक सरणी
arr[]लें। - फंक्शन
sub_zeroes_ones(int arr[], int size)सरणी लेता है और समान संख्या में 0's और 1's वाले सबएरे की संख्या लौटाता है। - प्रारंभिक काउंट 0 लें।
- दो फॉर लूप का उपयोग करके i=0 से i<=size-1 और j=0 से j<=size-1 तक सरणी को ट्रैवर्स करें।
- सबएरे
arr[i]सेarr[j]में 0's और 1's की संख्या के लिए दो चरtotal_0,total_1को 0 के रूप में लें। arr[j]की तुलना 0 और 1 से करें। यदिarr[j]0 या 1 है तो संबंधित काउंट (total_0याtotal_1) बढ़ाएँ।- यदि
total_0 == total_1। काउंट बढ़ाएँ। (सबएरे में तत्वों के रूप में 0's और 1's की समान संख्या है)। - दोनों लूप के अंत में, परिणाम के रूप में काउंट लौटाएँ।
उदाहरण
#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);
return 0;
}
आउटपुट
Count of subarrays with equal number of 1's and 0's are: 4