Cuente los elementos de la matriz que superan todos los elementos anteriores, así como el siguiente elemento de la matriz

Cuente los elementos de la matriz que superan todos los elementos anteriores, así como el siguiente elemento de la matriz

Dada una matriz arr[]la tarea es encontrar el número de elementos de la matriz que cumplen las siguientes condiciones:

  • Los elementos de la matriz deben ser estrictamente más grandes que todos los elementos de la matriz que aparecen anteriormente.
  • O es el último elemento de la matriz o el número entero debe ser estrictamente mayor que el siguiente elemento de la matriz.

Nota: También se puede tener en cuenta el primer número entero de la matriz.

Ejemplos:

Entrada: arr[] = {1, 2, 0, 7, 2, 0, 2, 0}
Salida: 2
Explicación: arr[1] (= 2) y arr[3] (= 7) son los elementos de la matriz que cumplen la condición dada.

Entrada: arr[] = {4, 8, 15, 16, 23, 42}
Salida: 1

Acercarse: La idea es atravesar la matriz linealmente y verificar que cada elemento de la matriz cumpla con la condición dada o no. Para resolver este problema, haga lo siguiente:

  • Itere a través de la matriz.
  • A partir del primer elemento de la matriz, realice un seguimiento del elemento de matriz máximo que se ha encontrado hasta ahora.
  • Actualice el elemento de matriz máximo si es más grande que el elemento de matriz máximo encontrado anteriormente.
  • Después de actualizar el máximo actual, verifique si el siguiente elemento de la matriz es mayor que el elemento de la matriz actual o no. Si este resulta ser el caso, aumente el número.
  • Repita este proceso hasta que se repita el último elemento de la matriz.
  • Finalmente, imprima el número recibido.

A continuación se muestra la implementación del enfoque anterior:

C ++

 

#include <bits/stdc++.h>

using namespace std;

 

int numberOfIntegers(int arr[], int N)

{

    int cur_max = 0, count = 0;

 

    

    

    if (N == 1) {

        count = 1;

    }

    else {

 

        

        for (int i = 0; i < N - 1; i++) {

 

            

            

            if (arr[i] > cur_max) {

                cur_max = arr[i];

 

                

                

                

                if (arr[i] > arr[i + 1]) {

 

                    count++;

                }

            }

        }

        if (arr[N - 1] > cur_max)

            count++;

    }

 

    

    cout << count;

}

 

int main()

{

    

    int arr[] = { 1, 2, 0, 7, 2, 0, 2, 0 };

 

    

    int N = sizeof(arr) / sizeof(arr[0]);

 

    numberOfIntegers(arr, N);

 

    return 0;

}

Complejidad temporal: EN)
Sala auxiliar: O (1)

¡Atención lectores! No dejes de estudiar ahora. Comience con todos los conceptos principales de DSA Curso autodidacta de DSA a un precio asequible para los estudiantes y son aptas para la industria.