Menu
CoddyTech

Koko Eating Bananas

Koko tiene n montones de plátanos, donde piles[i] es la cantidad de plátanos en el montón i, y faltan h horas para que vuelvan los guardias. Elige una velocidad para comer k, un número entero de plátanos por hora, y la mantiene. Cada hora come k plátanos de un montón; si quedan menos de k en ese montón, se lo termina y descansa hasta que acaba la hora. Devuelve la velocidad mínima k que le permite terminar todos los montones en un máximo de h horas.

Función

minEatingSpeed(piles: integer-array, h: integer) → integer
pilesinteger-array
el número de plátanos en cada montón
hinteger
la cantidad de horas que tiene Koko
Devuelveinteger
la menor velocidad de ingesta expresada en bananas por hora que permite terminar cada montón en un máximo de h horas

Restricciones

  • 1 ≤ piles.length ≤ 5000
  • 1 ≤ piles[i] ≤ 109
  • piles.length ≤ h ≤ 109, por lo que siempre existe una respuesta.

Ejemplos

Entrada
piles = [4, 10, 7, 3]h = 6
Salida
5
Explicación
A velocidad 5, las pilas 4, 10, 7 y 3 tardan 1, 2, 2 y 1 horas: 6 en total, lo que cabe. A velocidad 4 tardan 1, 3, 2 y 1 horas, que suman 7, una hora de más.

lock icon+22 pruebas ocultas al enviar

challenge icon

Para ir más allá

Un problema gemelo: Koko tiene d días y come montones enteros en el orden indicado, tantos montones al día como quepan dentro de un límite diario de k bananas. ¿Cuál es el menor k y qué dos partes de tu búsqueda binaria cambian?

Restablecer código
def minEatingSpeed(piles, h):
    # Escribe el código aquí
Casos de prueba

Caso 1

Caso 2

Caso 3

Entrada

piles = [4, 10, 7, 3]
h = 6

Esperado

5