Saltar al contenido

La banda más poblada

Enunciado

La antena de la base Kepler solo escucha una banda a la vez, y la banda tiene un ancho fijo. Quieres apuntarla donde caigan más naves.

Escribe una función que reciba frecuencias, una lista de enteros positivos (una por nave; puede venir vacía y puede haber repetidas), y ancho, un entero de 0 en adelante. Regresa un entero: cuántas naves, como máximo, caben juntas en una banda, es decir, en un grupo donde la frecuencia mayor menos la menor da ancho o menos. Las repetidas cuentan cada una, y el borde entra: una diferencia igual a ancho sí cabe.

Con 101, 98, 105, 99, 120, 104 y 103 y ancho 5, la banda de 99 a 104 atrapa 99, 101, 103 y 104: son 4, y ninguna banda atrapa 5.

Con una sola nave la respuesta es 1; sin naves, 0.

Ejemplos

  • El del ejemplo

    [101, 98, 105, 99, 120, 104, 103], 5 → 4

  • El borde entra

    [10, 13, 16], 3 → 2

  • Repetidas con ancho 0

    [50, 50, 50, 52], 0 → 3

  • La mejor banda va al final

    [88, 90, 91, 95, 96, 97, 98], 4 → 4

  • Una sola nave

    [7], 0 → 1

Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.

Empiezas con esto

Python

def banda(frecuencias, ancho):
    pass

JavaScript

function banda(frecuencias, ancho) {
}
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 log n)

Ver todos los retos →