Volver a Complejidad
Complejidad

Segundo Mayor

Fácil2 min de lectura

Encuentra el segundo valor más grande en una sola pasada, sin ordenar. O(n) contra O(n log n).

Enunciado

Recibes un array arr de enteros. Devuelve el segundo valor más grande entre los valores distintos del array.

Si no existe un segundo valor distinto, porque el array está vacío, tiene un solo elemento, o todos sus elementos son iguales, devuelve None en Python y null en JavaScript.

Restricciones

  • Tiempo O(n). Ordenar el array es O(n log n) y no cuenta como solución.
  • Espacio adicional O(1). No puedes crear un set, ni una copia ordenada del array.
  • Los valores pueden ser negativos.

Ejemplos

arrresultadopor qué
[3, 1, 4, 1, 5]4el mayor es 5, el siguiente distinto es 4
[10, 10, 9]9los dos 10 cuentan como un solo valor
[2, 2, 2]nullno hay un segundo valor distinto
[-5, -2, -9]-5el mayor es -2, el siguiente es -5
[7]nullfalta un segundo elemento

Pistas progresivas

0 de 3

    Intenta resolver el problema antes de ver pistas.

    Tu solución

    Cargando editor
    Escribe tu solución y pulsa Correr tests.

    Solución

    Intenta resolverlo primero. Ver la solución antes de tiempo recorta lo que aprendes.