हमें पूर्णांकों की एक सरणी गिरफ्तारी [] दी गई है। इसके अलावा एक संख्या 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