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

C++ में K से अधिक सभी तत्वों के साथ उप-सरणी गिनें

हमें पूर्णांकों की एक सरणी गिरफ्तारी [] दी गई है। इसके अलावा एक संख्या K. लक्ष्य arr[] के सभी उप-सरणी गिनना है, जैसे कि उप-सरणी के सभी तत्व K से बड़े हैं या K, उप-सरणी के सभी तत्वों से कम है। यदि सरणी [1,2,3] है और K 1 है। सबअरे [2], [3], [2,3] होंगे।

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

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

आउटपुट − K से बड़े सभी तत्वों के साथ उपसरणियों की संख्या है − 4

स्पष्टीकरण - सुबारे होंगे:[2], [2], [5], [2,2]। प्रत्येक उप-सरणी में सभी तत्व 1 से बड़े होते हैं।

इनपुट - गिरफ्तार [] ={ 3,4,5,6 }; कश्मीर=2

आउटपुट − K से बड़े सभी तत्वों के साथ उपसरणियों की संख्या है − 10

स्पष्टीकरण - सुबारे होंगे - [3], [4], [5], [6], [3,4], [4,5], [5,6], [3,4,5], [4 5,6], [3,4,5,6]। कुल गिनती=10.

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

हम लूप के लिए a का उपयोग करके सरणी को पार करेंगे। यदि वर्तमान तत्व K से अधिक है। वेतन वृद्धि गणना। अन्यथा गिनती =0 और कुल =गिनती * (गिनती + 1) / 2 सेट करें। (उपसरणियों के लिए)। यदि अंत में गिनती शून्य है। शेष उपसरणियों की गिनती के लिए गिनती*(गिनती+1)/2 जोड़ें।

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

  • फ़ंक्शन sub_greater_k(int arr[], int size, int k) सरणी लेता है और k से बड़े सभी तत्वों के साथ सबएरे की गिनती देता है।

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

  • हम लूप के लिए i=0 से i

  • अगर arr[i]>k तो इंक्रीमेंट काउंट।

  • गिनती के साथ उप-सरणी (तत्व> k ) की गणना की जाएगी*(गिनती+1)/2। इस तरह के सभी उपसरणियों के लिए इसे कुल में जोड़ें।

  • अगर गिनती शून्य नहीं है, तो फिर से गिनती*(गिनती+1)/2 को कुल में जोड़ें।

  • परिणाम के रूप में कुल लौटाएं।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int sub_greater_k(int arr[], int size, int k){
   int count = 0;
   int total = 0;
   for (int i = 0; i < size; i++){
      if (arr[i] > k){
         count++;
      }
      else{
         total += (count) * (count + 1) / 2;
         count = 0;
      }
   }
   if(count){
      total += (count) * (count + 1) / 2;
   }
   return total;
}
int main(){
   int arr[] = {2, 4, 6, 1, 3, 7, 9 };
   int size = sizeof(arr) / sizeof(arr[0]);
   int k = 7;
   cout<<"Count of subarrays with all elements greater than K are: "<<sub_greater_k(arr, size, k);
   return 0;
}

आउटपुट

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

Count of subarrays with all elements greater than K are: 1

  1. C++ में दिए गए XOR के साथ सभी जोड़ियों की गणना करें

    इस ट्यूटोरियल में, हम दिए गए XOR के साथ युग्मों की संख्या ज्ञात करने के लिए एक प्रोग्राम पर चर्चा करेंगे। इसके लिए हमें एक सरणी और एक मान प्रदान किया जाएगा। हमारा काम उन युग्मों की संख्या ज्ञात करना है जिनका XOR दिए गए मान के बराबर है। उदाहरण #include<bits/stdc++.h> using namespace std; //ret

  1. C++ में b से अधिक वाले उपसर्ग

    इस समस्या में, हमें स्ट्रिंग str दिया जाता है जिसमें केवल a और b होता है और एक पूर्णांक N होता है जैसे कि str n बार जोड़कर एक स्ट्रिंग बनाई जाती है। हमारा काम सबस्ट्रिंग की कुल संख्या को प्रिंट करना है जिसमें a की गिनती b की गिनती से अधिक है। आइए समस्या को समझने के लिए एक उदाहरण लेते हैं Input: aab

  1. C++ में 0 योग के साथ सभी उप-सरणी मुद्रित करें

    इस समस्या में, हमें पूर्णांक मानों की एक सरणी दी जाती है और हमें इस सरणी से उन सभी उप-सरणी को प्रिंट करना होता है जिनका योग 0 के बराबर होता है। आइए विषय को बेहतर ढंग से समझने के लिए एक उदाहरण लेते हैं, Input: array = [-5, 0, 2, 3, -3, 4, -1] Output: Subarray with sum 0 is from 1 to 4. Subarray with