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

C++ का उपयोग करके उन खंडों की संख्या ज्ञात करें जहां सभी तत्व X से बड़े हैं

इस लेख में, हमें दिए गए क्रम में खंडों या उप-सरणी की संख्या ज्ञात करनी है जहां तत्व दिए गए संख्या 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, आदि में लिख सकते हैं।


  1. C++ का उपयोग करके पंचकोणीय पिरामिड संख्या ज्ञात कीजिए

    एक पंचकोणीय पिरामिड संख्या एक पंचकोणीय आधार पिरामिड में मदों की संख्या के बराबर होती है। नीचे कुछ पंचकोणीय संख्याओं को देखें। N तक पंचकोणीय संख्याओं का योग Nवीं पंचकोणीय पिरामिड संख्या के बराबर होता है। इस लेख में, हम उदाहरण के लिए, Nth पंचकोणीय पिरामिड संख्या खोजने पर चर्चा करेंगे Input : N = 4

  1. C++ का उपयोग करके एक स्ट्रिंग के सबस्ट्रिंग की संख्या ज्ञात करें

    इस लेख में, आप किसी दिए गए स्ट्रिंग में बनाए जा सकने वाले सबस्ट्रिंग (गैर-रिक्त) की संख्या को खोजने के तरीकों के बारे में जानेंगे। Input : string = “moon” Output : 10 Explanation: Substrings are ‘m’, ‘o’, ‘o’, ‘n’, ‘mo’, &lsqu

  1. C++ . का उपयोग करके स्टॉपिंग स्टेशनों की संख्या ज्ञात कीजिए

    बिंदु X और Y के बीच मध्यवर्ती ट्रेन स्टेशनों की संख्या n है। गिनें कि अलग-अलग तरीकों से ट्रेनों को s स्टेशनों पर रुकने के लिए व्यवस्थित किया जा सकता है जैसे कि कोई भी दो स्टेशन एक दूसरे के बगल में नहीं हैं। तो इस लेख में, हम स्टॉपिंग स्टेशनों की संख्या का पता लगाने के लिए हर संभव तरीके की व्याख्या क