Menu
CoddyTech

Koko Eating Bananas

Koko tem n pilhas de bananas, em que piles[i] é o número de bananas na pilha i, e faltam h horas para os guardas voltarem. Ela escolhe uma velocidade de consumo k, um número inteiro de bananas por hora, e a mantém. A cada hora, ela come k bananas de uma pilha; se restarem menos de k bananas nessa pilha, ela a termina e descansa até o fim da hora. Retorne a menor velocidade k que permita que ela termine todas as pilhas em até h horas.

Função

minEatingSpeed(piles: integer-array, h: integer) → integer
pilesinteger-array
o número de bananas em cada pilha
hinteger
o número de horas que Koko tem
Retornainteger
a menor velocidade inteira de consumo, em bananas por hora, que termina todas as pilhas em até h horas

Restrições

  • 1 ≤ piles.length ≤ 5000
  • 1 ≤ piles[i] ≤ 109
  • piles.length ≤ h ≤ 109, então sempre existe uma resposta.

Exemplos

Entrada
piles = [4, 10, 7, 3]h = 6
Saída
5
Explicação
Na velocidade 5, as pilhas 4, 10, 7 e 3 levam 1, 2, 2 e 1 horas: 6 no total, o que cabe. Na velocidade 4, elas levam 1, 3, 2 e 1 horas, totalizando 7, uma hora a mais.

lock icon+22 testes ocultos ao enviar

challenge icon

Para ir além

Um problema semelhante: Koko tem d dias e come pilhas inteiras na ordem dada, tantas pilhas por dia quantas couberem no limite diário de k bananas. Qual é o menor k, e quais duas partes da sua busca binária mudam?

Redefinir código
def minEatingSpeed(piles, h):
    # Escreva o código aqui
Casos de teste

Caso 1

Caso 2

Caso 3

Entrada

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

Esperado

5