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

C++ में उन सबएरे की गिनती जिनके सभी तत्व X से कम या बराबर हों


हमें एक सरणी arr[] दी गई है जिसमें पूर्णांक हैं और एक चर X है। लक्ष्य arr[] के उन सभी सबएरे की गिनती करना है जिनमें केवल वे तत्व हों जो X से कम या बराबर हों। उदाहरण के लिए यदि सरणी [1,2,3] है और X=2 तो सबएरे होंगे [1], [2] और [1,2]।

उदाहरण सहित समझ

इनपुट - arr[] = { 4,3,2,1,6 }; X=3

आउटपुट - उन सबएरे की संख्या जिनके तत्व X से कम या बराबर हैं: 6

व्याख्या - सबएरे होंगे:

[3], [2], [1], [3,2], [2,1], [3,2,1]

इनपुट - arr[] = { 3,6,2,7,1,8,5 }; X=5

आउटपुट - उन सबएरे की संख्या जिनके तत्व X से कम या बराबर हैं: 4

व्याख्या - सबएरे होंगे:

[3], [2], [1], [5]

प्रोग्राम में उपयोग किया गया दृष्टिकोण

हम मूल सरणी arr[] के समान आकार का एक बाइनरी सरणी temp_arr[] बना रहे हैं। यह बाइनरी सरणी में 1 होगा यदि संगत arr[i] X से कम या बराबर है, अन्यथा 0। अब temp_arr[] को ट्रैवर्स करें और लगातार 1's ( arr[] में X से कम तत्व) की जांच करें। ऐसी प्रत्येक सबएरे की लंबाई temp में संग्रहीत करें। लंबाई temp की एक सरणी के लिए। कुल सबएरे होंगे temp*(temp+1)/2। इसे कुल काउंट में जोड़ें और temp_arr[] के अंत तक जारी रखें।

  • सरणी arr[] और चर X लें।
  • फंक्शन sub_X(int arr[], int size, int x) सरणी और x लेता है और केवल उन तत्वों वाले सबएरे की गिनती लौटाता है जो x से कम या बराबर हैं।
  • अस्थायी चर temp और ऐसी सबएरे के अंतिम कुल count के रूप में लें।
  • arr[] के समान लंबाई का एक बाइनरी सरणी temp_arr[] लें।
  • फॉर लूप का उपयोग करके i=0 से i<size तक सरणी arr[] को ट्रैवर्स करें।
  • प्रत्येक तत्व arr[i] <= x के लिए, temp_arr[i] = 1 सेट करें अन्यथा 0।
  • फॉर लूप का उपयोग करके temp_arr[] को ट्रैवर्स करें।
  • यदि कोई तत्व temp_arr[i] == 1 है। तो वर्तमान इंडेक्स i से सब लूप का उपयोग करके ट्रैवर्स करें जब तक temp_arr[temp_2] (temp_2 = i+1; temp_2 < size) 1 है। यदि 0 है तो सब लूप तोड़ें।
  • सभी 1's वाली सबएरे की संख्या temp = temp_2 - i होगी।
  • इस सबएरे में सभी 1's हैं जिसका अर्थ है arr[i] में सभी तत्व <= x हैं। कुल सबएरे होंगे temp_3 = temp * (temp + 1) / 2।
  • दोनों ट्रैवर्सल के अंत में, काउंट में arr के भीतर उन सभी सबएरे की कुल संख्या होगी जिनमें x से कम या बराबर संख्याएँ हैं।

उदाहरण

#include <iostream>
using namespace std;

int sub_X(int arr[], int size, int x) {
    int count = 0, temp = 0;
    int temp_arr[size];
    for (int i = 0; i < size; i++) {
        if (arr[i] <= x) {
            temp_arr[i] = 1;
        } else {
            temp_arr[i] = 0;
        }
    }
    for (int i = 0; i < size; i++) {
        if (temp_arr[i] == 1) {
            int temp_2;
            for (temp_2 = i + 1; temp_2 < size; temp_2++) {
                if (temp_arr[temp_2] != 1) {
                    break;
                }
            }
            temp = temp_2 - i;
            int temp_3 = (temp) * (temp + 1) / 2;
            count = count + temp_3;
            i = temp_2;
        }
    }
    return count;
}

int main() {
    int arr[] = { 2, 6, 1, 10, 5, 3 };
    int x = 4;
    int size = sizeof(arr) / sizeof(arr[0]);
    cout << "Count of sub-arrays which have elements less than or equal to X are: " << sub_X(arr, size, x);
    return 0;
}

आउटपुट

Count of sub-arrays which have elements less than or equal to X are: 3
  1. - C++ में निरपेक्ष अंतर 1 से कम या बराबर होने वाले अधिकतम तत्वों की संख्या ज्ञात करें

    मान लीजिए हमारे पास n तत्वों का एक सरणी है। हमें सरणी से चुनने के लिए तत्वों की अधिकतम संख्या ढूंढनी है, जैसे कि चुने गए किन्हीं दो तत्वों के बीच का निरपेक्ष अंतर 1 से कम या बराबर हो। इसलिए यदि सरणी [2, 2, 3, 4, 5] की तरह है, तो तत्व 3 होगा, इसलिए अधिकतम संख्या वाला अनुक्रम 2, 2, 3 है। 0 और 1 का निर

  1. - C++ में दी गई संख्या से कम या बराबर सबसे बड़ा विशेष अभाज्य संख्या ज्ञात करें

    मान लीजिए हमारे पास एक संख्या n है। हमें सबसे बड़ा विशेष अभाज्य संख्या ढूंढनी है जो N से कम या बराबर हो। विशेष अभाज्य संख्या एक ऐसी संख्या है, जिसे एक के बाद एक अंक रखकर बनाया जा सकता है, ताकि सभी परिणामस्वरूप संख्याएं अभाज्य हों। यहां हम एराटोस्थनीज की छलनी का उपयोग करेंगे। हम संख्या n तक छलनी सरणी

  1. - C++ में n से कम या बराबर सभी फैक्टोरियल संख्याएं खोजें

    यहां हम देखेंगे कि n से कम या बराबर सभी फैक्टोरियल संख्याओं को कैसे प्रिंट किया जाए। एक संख्या N को फैक्टोरियल संख्या कहा जाता है यदि यह किसी धनात्मक संख्या का फैक्टोरियल है। इसलिए कुछ फैक्टोरियल संख्याएं हैं: 1, 2, 6, 24, 120। फैक्टोरियल संख्याओं को प्रिंट करने के लिए, हमें सीधे फैक्टोरियल खोजने क