La señal más fuerte
- O(n) · Media
- Plan completo
- Python
- JavaScript
- listas
- ciclos
- índices
Enunciado
La sonda Albatros ya pasó Júpiter, y su señal llega a la base cada vez más débil. Cada minuto la antena mide qué tan fuerte llegó; cuando el ruido le gana, la medida sale negativa. La antena solo puede grabar k minutos seguidos, y hay que escoger los mejores.
Escribe una función que reciba la lista de lecturas (enteros, pueden ser negativos) y k (un entero, 1 o más), y regrese la mayor suma de k lecturas seguidas. Con [3, -1, 4, 1, -5] y k = 2, las ventanas suman 2, 3, 5 y -4: regresas 5. No hace falta sumar la ventana entera en cada paso: al moverla un lugar, entra una lectura y sale otra.
Si todas las lecturas son negativas, la mejor suma también lo es. Si la lista tiene menos de k lecturas, no hay ventana: regresa 0.
Ejemplos
El del ejemplo
[3, -1, 4, 1, -5], 2 → 5
Ventana de tres
[2, 1, 5, 1, 3, 2], 3 → 9
La mejor es la primera
[9, 8, 1, 1, 1], 2 → 17
Un minuto a la vez
[5, -2, 7], 1 → 7
La ventana es toda la lista
[4, -1, 2, 3], 4 → 8
Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.
Empiezas con esto
Python
def mejor_ventana(lecturas, k):
passJavaScript
function mejorVentana(lecturas, k) {
}Se abre en el navegador, con el editor y las pruebas. Este reto es del plan completo; los de O(1) y O(log n) son gratis.