हमें दो पूर्णांक सरणियाँ दी गई हैं। कार्य है पहली सरणी से एक तत्व और दूसरी से एक तत्व लेकर जोड़े बनाना और जांचना कि उनका योग सम (even) है या नहीं।
इनपुट - arr1[] = {2,3,7,1,4}, arr2[] = {2,4,1,3}
आउटपुट - दो सरणियों से सम योग वाले जोड़ों की संख्या: 10
उपयोग किया गया दृष्टिकोण
- दोनों सरणियों के आकार ज्ञात करें।
- नेस्टेड लूप: सभी जोड़े बनाएं और योग जांचें।
- यदि
(arr1[i] + arr2[j]) % 2 == 0तो काउंट बढ़ाएं।
अनुकूलित दृष्टिकोण (पैरिटी गिनती)
योग सम होने के लिए दोनों संख्याएं या तो सम हों या दोनों विषम।
- पहली सरणी में सम और विषम की गिनती:
even1, odd1 - दूसरी सरणी में सम और विषम की गिनती:
even2, odd2 - कुल जोड़े =
even1 * even2 + odd1 * odd2 - समय जटिलता: O(n+m)
उदाहरण (C++ कोड)
#include <iostream>
using namespace std;
int even_pair(int arr1[], int size1, int arr2[], int size2) {
int even1 = 0, odd1 = 0, even2 = 0, odd2 = 0;
for (int i = 0; i < size1; i++)
if (arr1[i] % 2 == 0) even1++; else odd1++;
for (int i = 0; i < size2; i++)
if (arr2[i] % 2 == 0) even2++; else odd2++;
return even1 * even2 + odd1 * odd2;
}
int main() {
int arr1[] = {2,3,7,1,4};
int arr2[] = {2,4,1,3};
int size1 = sizeof(arr1) / sizeof(arr1[0]);
int size2 = sizeof(arr2) / sizeof(arr2[0]);
cout << "Count Pairs from two arrays with even sum are: " << even_pair(arr1, size1, arr2, size2);
return 0;
} आउटपुट
Count Pairs from two arrays with even sum are: 10