Menu
CoddyTech

Koko Eating Bananas

У Коко есть n куч бананов, где piles[i] — количество бананов в куче i, и h часов до возвращения стражников. Она выбирает скорость поедания k — целое количество бананов в час — и придерживается её. Каждый час она съедает k бананов из одной кучи; если в куче осталось меньше k бананов, она доедает её и отдыхает до конца часа. Верните наименьшую скорость k, при которой она сможет съесть все бананы в течение h часов.

Функция

minEatingSpeed(piles: integer-array, h: integer) → integer
pilesinteger-array
количество бананов в каждой куче
hinteger
количество часов, которое есть у Коко
Возвращаетinteger
наименьшая целочисленная скорость поедания бананов, измеряемая в бананах в час, при которой можно съесть все кучи не более чем за h часов

Ограничения

  • 1 ≤ piles.length ≤ 5000
  • 1 ≤ piles[i] ≤ 109
  • piles.length ≤ h ≤ 109, поэтому ответ всегда существует.

Примеры

Ввод
piles = [4, 10, 7, 3]h = 6
Вывод
5
Пояснение
При скорости 5 на кучи по 4, 10, 7 и 3 уйдёт 1, 2, 2 и 1 час: всего 6, что укладывается в лимит. При скорости 4 на них уйдёт 1, 3, 2 и 1 час, то есть 7 часов — на один час больше.

lock icon+22 скрытых тестов при отправке

challenge icon

Дополнительный вопрос

Похожая задача: у Коко есть d дней, и она съедает целые кучи в заданном порядке — столько куч за день, сколько позволяет дневной лимит в k бананов. Каково наименьшее k и какие две части двоичного поиска нужно изменить?

Сбросить код
def minEatingSpeed(piles, h):
    # Напишите код здесь
Тестовые случаи

Случай 1

Случай 2

Случай 3

Ввод

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

Ожидается

5