Maison  >  Article  >  développement back-end  >  Écrit en C++, trouvez le nombre de segments où tous les éléments sont supérieurs à X

Écrit en C++, trouvez le nombre de segments où tous les éléments sont supérieurs à X

王林
王林avant
2023-09-10 09:29:13617parcourir

Écrit en C++, trouvez le nombre de segments où tous les éléments sont supérieurs à X

Dans cet article, nous devons trouver le nombre de segments ou de sous-tableaux dans une séquence donnée qui sont supérieurs à un nombre X donné.

Nous ne pouvons compter qu'une seule fois les segments qui se chevauchent, deux éléments ou segments adjacents ne doivent pas être comptés séparément. Voici donc l'exemple de base du problème donné −

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

Façon de trouver la solution

Manière naïve

Dans ce problème, nous initialisons la variable state avec 0 et commençons à traiter le tableau donné et lorsque nous trouvons un supérieur à Lorsqu'un élément de X est trouvé, changez l'état à 1 et continuez le traitement des éléments lorsqu'un nombre est inférieur ou égal à ;

Exemple

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

Sortie

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

Description du programme ci-dessus

Dans le programme ci-dessus, nous utilisons l'état comme commutateur et le réglons sur 1 lorsqu'un nombre supérieur à X est trouvé et le réglons lorsqu'un nombre supérieur que Trouver un nombre inférieur ou égal à Enfin, imprimez les résultats stockés dans le décompte.

Conclusion h2>

Dans cet article, nous avons résolu le problème de trouver le nombre de segments où tous les éléments sont supérieurs à X en appliquant une méthode permettant de définir l'état à 1 et 0 chaque fois qu'un segment est trouvé. Nous pouvons écrire ce programme dans n'importe quel autre langage de programmation comme C, Java, Python, etc.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer