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.