Saltar al contenido

La señal más fuerte

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):
    pass

JavaScript

function mejorVentana(lecturas, k) {
}
Resolver este reto

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.

Más retos de O(n)

Ver todos los retos →