Heim >Backend-Entwicklung >C++ >Ermitteln Sie in C++ die Anzahl der Segmente, in denen alle Elemente größer als X sind

Ermitteln Sie in C++ die Anzahl der Segmente, in denen alle Elemente größer als X sind

王林
王林nach vorne
2023-09-10 09:29:13633Durchsuche

Ermitteln Sie in C++ die Anzahl der Segmente, in denen alle Elemente größer als X sind

In diesem Artikel müssen wir die Anzahl der Segmente oder Unterarrays in einer bestimmten Sequenz ermitteln, die größer als eine bestimmte Zahl X sind.

Wir können überlappende Segmente nur einmal zählen, zwei benachbarte Elemente oder Segmente sollten nicht separat gezählt werden. Hier ist also das grundlegende Beispiel des gegebenen Problems:

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

Weg zur Lösung

Naiver Weg

In diesem Problem initialisieren wir die Variable state mit 0 und beginnen mit der Verarbeitung des angegebenen Arrays und wenn wir ein Größer-als finden Wenn ein Element von X gefunden wird, ändern Sie den Status auf 1 und fahren Sie mit der Verarbeitung von Elementen fort, wenn eine Zahl kleiner oder gleich ist

Beispiel

#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;
}

Ausgabe

Number of segments where all elements are greater than X: 4

Beschreibung des obigen Programms

Im obigen Programm verwenden wir den Status als Schalter und setzen ihn auf 1, wenn eine Zahl größer als X gefunden wird, und setzen ihn, wenn eine Zahl größer ist als Finden Sie eine Zahl, die kleiner oder gleich ist Drucken Sie abschließend die in der Zählung gespeicherten Ergebnisse aus.

Fazit h2>

In diesem Artikel haben wir das Problem gelöst, die Anzahl der Segmente zu ermitteln, bei denen alle Elemente größer als X sind, indem wir eine Methode angewendet haben, mit der der Status immer dann auf 1 und 0 gesetzt wird, wenn ein Segment gefunden wird. Wir können dieses Programm in jeder anderen Programmiersprache wie C, Java, Python usw. schreiben.

Das obige ist der detaillierte Inhalt vonErmitteln Sie in C++ die Anzahl der Segmente, in denen alle Elemente größer als X sind. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen