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

C++ में सभी तत्व K से अधिक वाले सबएरे की गिनती


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

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

इनपुट - arr[] = { 2, 2, 1, 1, 1, 5 }; K=1

आउटपुट - सभी तत्व K से अधिक वाले सबएरे की संख्या: 4

व्याख्या - सबएरे होंगे: [2], [2], [5], [2,2]। प्रत्येक सबएरे में सभी तत्व 1 से अधिक हैं।

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

आउटपुट - सभी तत्व K से अधिक वाले सबएरे की संख्या: 10

व्याख्या - सबएरे होंगे: [3], [4], [5], [6], [3,4], [4,5], [5,6], [3,4,5], [4,5,6], [3,4,5,6]. कुल संख्या=10।

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

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

  • संख्याओं की एक सरणी arr[] लें।
  • फंक्शन sub_greater_k(int arr[], int size, int k) सरणी लेता है और सभी तत्व k से अधिक वाले सबएरे की गिनती लौटाता है।
  • प्रारंभिक काउंट 0 लें।
  • फॉर लूप का उपयोग करके i=0 से i<size तक सरणी को ट्रैवर्स करें।
  • यदि arr[i] > k तो काउंट बढ़ाएँ।
  • count (तत्व > k) वाले सबएरे होंगे count*(count+1)/2। इसे ऐसे सभी सबएरे के कुल में जोड़ें।
  • अंत में फिर से count*(count+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; //returning the numb

  1. - C++ में B से अधिक A वाले प्रीफिक्सेस

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

  1. - C++ में योग शून्य वाले सभी उपसरणी (Subarrays) प्रिंट करें

    इस समस्या में, हमें पूर्णांक मानों की एक सरणी दी गई है और हमें इस सरणी से उन सभी उपसरणी को प्रिंट करना है जिनका योग 0 के बराबर है। विषय को बेहतर ढंग से समझने के लिए एक उदाहरण लेते हैं, इनपुट: सरणी = [-5, 0, 2, 3, -3, 4, -1] आउटपुट: इंडेक्स 1 से 4 तक उपसरणी का योग 0 है। इंडेक्स 5 से 7 तक उपसरणी का यो