इस लेख में, हमें दिए गए क्रम में खंडों या उप-सरणी की संख्या ज्ञात करनी है जहां तत्व दिए गए संख्या X से अधिक हैं।
हम ओवरलैपिंग सेगमेंट को केवल एक बार गिन सकते हैं, और दो सन्निहित तत्वों या सेगमेंट को अलग-अलग नहीं गिना जाना चाहिए। तो यहाँ दी गई समस्या का मूल उदाहरण है -
Input : arr[ ] = { 9, 6, 7, 11, 5, 7, 8, 10, 3}, X = 7 Output : 3 Explanation : { 9 }, { 11 } and { 8, 10 } are the segments greater than 7 Input : arr[ ] = { 9, 6, 12, 2, 11, 14, 8, 14 }, X = 8 Output : 4 Explanation : { 9 }, { 12 }, { 11, 14 } and { 14 } are the segments greater than 8. से बड़े खंड हैं
समाधान खोजने के लिए दृष्टिकोण
निष्पक्ष दृष्टिकोण
इस समस्या में, हम एक वैरिएबल राज्य . को इनिशियलाइज़ कर रहे हैं 0 के साथ और दिए गए सरणी को संसाधित करना शुरू करें और राज्य को 1 में बदलें जब एक्स से बड़ा तत्व पाया जाता है और तत्वों को संसाधित करना जारी रखता है और राज्य को वापस 0 में बदल देता है जब एक्स से कम या उसके बराबर संख्या मिलती है और 1 के साथ वृद्धि की गिनती होती है हर बार राज्य 1 पर जाता है और वापस 0 पर जाता है।
उदाहरण
#include <bits/stdc++.h> using namespace std; int main (){ int a[] = { 9, 6, 12, 2, 11, 14, 8, 14 }; int n = sizeof (a) / sizeof (a[0]); int X = 8; int state = 0; int count = 0; // traverse the array for (int i = 0; i < n; i++){ // checking whether element is greater than X if (a[i] > X){ state = 1; } else{ // if flag is true if (state) count += 1; state = 0; } } // checking for the last segment if (state) count += 1; cout << "Number of segments where all elements are greater than X: " << count; return 0; }
आउटपुट
Number of segments where all elements are greater than X: 4
उपरोक्त कार्यक्रम की व्याख्या
उपरोक्त कार्यक्रम में, हम एक स्विच के रूप में राज्य का उपयोग कर रहे हैं, और हम इसे 1 पर सेट करते हैं जब एक्स से बड़ी संख्या मिलती है और इसे 0 पर सेट करते हैं जब एक्स से कम या उसके बराबर संख्या मिलती है, और हर बार राज्य के लिए 1 पर जाता है और 0 पर वापस आता है हम 1 से गिनती बढ़ाते हैं। अंत में, गिनती में संग्रहीत परिणाम को प्रिंट करना।
निष्कर्ष
इस लेख में, जब भी कोई खंड पाया जाता है, तो राज्य को 1 और 0 पर सेट करने के दृष्टिकोण को लागू करके, जहां सभी तत्व एक्स से अधिक होते हैं, उन खंडों की संख्या खोजने की समस्या को हल करते हैं। हम इस प्रोग्राम को किसी अन्य प्रोग्रामिंग भाषा जैसे C, Java, Python, आदि में लिख सकते हैं।