Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी ++ में दो दिए गए तत्वों की समान संख्या के साथ उप-सरणी की गणना करें

हमें पूर्णांकों की एक सरणी गिरफ्तारी [] दी गई है। इसके अलावा, दो नंबर ए और बी। लक्ष्य एआर के सभी उप-सरणी को गिनना है [] जैसे कि ए और बी की घटनाएं सभी में बराबर होती हैं। यदि सरणी [1,2,3] है और A 1 है और B 2 है। उप-सरणी [3], [1,2], [1,2,3] होगी।

आइए उदाहरणों से समझते हैं।

इनपुट - एआर [] ={ 2, 2, 1, 1, 1, 5}; ए=1, बी=5

आउटपुट - बराबर संख्या के साथ उपसरणियों की संख्या। दिए गए दो तत्वों के घटित होने की संख्या है - 4

स्पष्टीकरण - सुबारे होंगे - [2], [2], [2,2], [1,5]। पहले तीन में 1 और 5 की 0 बारंबारता होती है, अंतिम में दोनों की 1 घटना होती है।

इनपुट - गिरफ्तार [] ={ 5,3,7,5,3}; ए=1, बी=2

आउटपुट - बराबर संख्या के साथ उपसरणियों की संख्या। दिए गए दो तत्वों के घटित होने की संख्या है − 15

स्पष्टीकरण - सुबारे होंगे - (जिसमें 1 और 2 की 0 बारंबारताएं हों)

[5], [3], [7], [5], [3] - 5
[5,3], [3,7], [7,5], [5,3] - 4
[5,3,7], [3,7,5], [7,5,3] - 3
[5,3,7,5], [3,7,5,3] - 2
[5,3,5,7,5] - 1

1 और 2 दोनों की बिना किसी घटना ( 0 बारंबारता) के कुल 15 उपसरणियाँ।

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

हम सभी संभव सबएरे उत्पन्न करने के लिए लूप के लिए दो का उपयोग करके सरणी को पार करेंगे। i=0 से i<=size-1 और j=i से j<=size-1 तक। गठित उप-सरणी गिरफ्तारी [i] से गिरफ्तारी [जे] के बीच होगी। प्रत्येक सबरे में ए और बी की आवृत्ति की गणना करें। अगर बराबर है तो गिनती बढ़ाएँ।

  • संख्याओं की एक सरणी गिरफ्तारी [] लें।

  • फ़ंक्शन sub_EqualOccurrence(int arr[], int size, int A, int B) सरणी लेता है और बराबर संख्या के साथ सबएरे की गिनती देता है। ए और बी का।

  • प्रारंभिक गणना 0 के रूप में लें।

  • हम i=0 से i<=size-1 और j=0 से j<=size-1 तक दो for लूप का उपयोग करके सरणी को पार करेंगे।

  • उपसरणी arr[i] से arr[j] में A और B की संख्या के लिए दो चर Total_A, Total_B को 0 के रूप में लें।

  • ए और बी के साथ एआर [जे] की तुलना करें। अगर एआर [जे] ए या बी है तो वृद्धि संबंधित गिनती (total_A या Total_B)।

  • अगर कुल_ए ==कुल_बी। वृद्धि की गिनती। (उपसरणी में ए और बी के तत्वों की संख्या समान है)।

  • दोनों लूपों के अंत में, परिणाम के रूप में वापसी की गणना करें।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int sub_EqualOccurrence(int arr[], int size, int A, int B){
   int count = 0;
   for (int i = 0; i <= size - 1; i++){
      int total_A = 0;
      int total_B = 0;
      for (int j = i; j <= size - 1; j++){
         if (arr[j] == A){
            total_A++;
         }
         else if (arr[j] == B){
            total_B++;
         }
         if(total_A == total_B){
            count++;
         }
      }
   }
   return count;
}
// Driver code
int main(){
   int arr[] = { 2, 3, 1, 1, 4, 5 };
   int size = sizeof(arr) / sizeof(arr[0]);
   int A = 1, B = 5;
   cout<<"Count of subarrays with equal number of occurrences of two given elements are: "<<sub_EqualOccurrence(arr, size, A, B);
   return (0);
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Count of subarrays with equal number of occurrences of two given elements are: 5

  1. C++ में दी गई संख्या के बराबर GCD वाले सेट के सबसेट की संख्या गिनें

    एक सरणी ar को देखते हुए, जिसमें धनात्मक संख्याएँ होती हैं और एक सरणी GCD[] जिसमें gcd मान होते हैं। लक्ष्य arr[] के तत्वों के सबसेट की संख्या का पता लगाना है जिसमें GCD में दिए गए gcd मान हैं []। उदाहरण के लिए इनपुट arr[] = {10, 5, 6, 3}, GCD[] = {2, 3, 5} आउटपुट Count of number of subsets of a se

  1. C++ में दी गई संख्या के साथ सरणी तत्वों के औसत की घटनाओं की गणना करें

    एक सरणी गिरफ्तारी [] जिसमें पूर्णांक तत्व और एक पूर्णांक संख्या दी गई है। लक्ष्य प्रत्येक तत्व arr[i] और num का औसत ज्ञात करना है और मूल सरणी में दिखाई देने वाले औसत की संख्या की संख्या को प्रिंट करना है। यदि सरणी गिरफ्तारी [] [5, 2, 3] है और संख्या 2 है। गिरफ्तारी में औसत [3, 2, 2] होगा [1,1,1]

  1. सी++ में मैनहट्टन दूरी के बराबर दूरी वाले पथों की गणना करें

    हमें चर x1, x2, y1, y2 दिए गए हैं जो 2D निर्देशांक प्रणाली पर दो बिंदुओं का प्रतिनिधित्व करते हैं (x1, y1) और (x2, y2)। लक्ष्य उन सभी रास्तों को खोजना है जिनकी दूरी इन दो बिंदुओं के बीच मैनहट्टन की दूरी के बराबर होगी। मैनहट्टन दूरी मैनहट्टन दो बिंदुओं (x1, y1) और (x2, y2) के बीच की दूरी है - एमडी