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
| arr | resultado | por qué |
|---|---|---|
[3, 1, 4, 1, 5] | 4 | el mayor es 5, el siguiente distinto es 4 |
[10, 10, 9] | 9 | los dos 10 cuentan como un solo valor |
[2, 2, 2] | null | no hay un segundo valor distinto |
[-5, -2, -9] | -5 | el mayor es -2, el siguiente es -5 |
[7] | null | falta un segundo elemento |
Pistas progresivas
0 de 3Intenta resolver el problema antes de ver pistas.