Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

सी प्रोग्राम में मान के समान आवृत्ति वाले तत्वों के लिए ऐरे रेंज क्वेरी?


यहां हम एक दिलचस्प समस्या देखेंगे। हमारे पास एन तत्वों के साथ एक सरणी है। हमें एक प्रश्न Q इस प्रकार करना है -

क्यू (आरंभ, अंत) इंगित करता है कि संख्या 'पी' के आने की संख्या शुरू से अंत तक ठीक 'पी' संख्या है।

तो अगर सरणी इस प्रकार है:{1, 5, 2, 3, 1, 3, 5, 7, 3, 9, 8}, और प्रश्न हैं -

Q(1, 8) - यहां 1 एक बार मौजूद है, और 3 बार 3 बार मौजूद है। तो जवाब है 2

Q(0, 2) - यहाँ 1 एक बार मौजूद है। तो जवाब है 1

एल्गोरिदम

क्वेरी(एस, ई) -

Begin
   get the elements and count the frequency of each element ‘e’ into one map
   count := count + 1
   for each key-value pair p, do
      if p.key = p.value, then
         count := count + 1
      done
      return count;
End

उदाहरण

#include <iostream>
#include <map>
using namespace std;
int query(int start, int end, int arr[]) {
   map<int, int> freq;
   for (int i = start; i <= end; i++) //get element and store frequency
      freq[arr[i]]++;
   int count = 0;
   for (auto x : freq)
      if (x.first == x.second) //when the frequencies are same, increase count count++;
   return count;
}
int main() {
   int A[] = {1, 5, 2, 3, 1, 3, 5, 7, 3, 9, 8};
   int n = sizeof(A) / sizeof(A[0]);
   int queries[][3] = {{ 0, 1 },
      { 1, 8 },
      { 0, 2 },
      { 1, 6 },
      { 3, 5 },
      { 7, 9 }
   };
   int query_count = sizeof(queries) / sizeof(queries[0]);
   for (int i = 0; i < query_count; i++) {
      int start = queries[i][0];
      int end = queries[i][1];
      cout << "Answer for Query " << (i + 1) << " = " << query(start, end, A) << endl;
   }
}

आउटपुट

Answer for Query 1 = 1
Answer for Query 2 = 2
Answer for Query 3 = 1
Answer for Query 4 = 1
Answer for Query 5 = 1
Answer for Query 6 = 0

  1. सी प्रोग्राम में सापेक्ष क्रम में सरणी में तत्वों की अंतिम घटना को प्रिंट करें।

    तत्वों के साथ एक सरणी a [] दिया गया है और कार्य सूची में दिए गए तत्वों की अंतिम घटनाओं को मुद्रित करना है। यहां हमें न केवल डुप्लिकेट तत्वों को हटाना है, बल्कि हमें पिछली बार होने वाले तत्वों के अनुसार तत्वों की घटनाओं के क्रम को भी बनाए रखना है। जैसे हमारे पास 6 तत्वों की एक सरणी है जिसमें कुछ डुप

  1. सरणी तत्वों के गुणन के लिए C++ प्रोग्राम

    पूर्णांक तत्वों की एक सरणी के साथ दिया गया और कार्य एक सरणी के तत्वों को गुणा करना और इसे प्रदर्शित करना है। उदाहरण Input-: arr[]={1,2,3,4,5,6,7} Output-: 1 x 2 x 3 x 4 x 5 x 6 x 7 = 5040 Input-: arr[]={3, 4,6, 2, 7, 8, 4} Output-: 3 x 4 x 6 x 2 x 7 x 8 x 4 = 32256 नीचे दिए गए कार्यक्रम में उपयोग क

  1. दिए गए रेंज में विषम कारकों वाले तत्वों की संख्या के लिए पायथन प्रोग्राम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक श्रेणी दी गई है, हमें श्रेणी में विषम कारकों की संख्या ज्ञात करने की आवश्यकता है। दृष्टिकोण जैसा कि हम सभी जानते हैं कि सभी पूर्ण वर्गों में एक श्रेणी में विषम संख्या में गुणनखंड होते हैं। तो यहां हम कई पूर्