Menu
CoddyTech

Koko Eating Bananas

Koko ma n stosów bananów, gdzie piles[i] oznacza liczbę bananów w stosie i, a strażnicy wrócą za h godzin. Wybiera jedną prędkość jedzenia k, całkowitą liczbę bananów na godzinę, i się jej trzyma. W każdej godzinie zjada k bananów z jednego stosu; jeśli zostanie w nim mniej niż k bananów, kończy go i odpoczywa do końca tej godziny. Zwróć najmniejszą prędkość k, która pozwoli jej zjeść wszystkie stosy w ciągu h godzin.

Funkcja

minEatingSpeed(piles: integer-array, h: integer) → integer
pilesinteger-array
liczba bananów w każdym stosie
hinteger
liczba godzin, które ma Koko
Zwracainteger
najmniejsza całkowita szybkość jedzenia, wyrażona w bananach na godzinę, przy której wszystkie stosy zostaną zjedzone w ciągu h godzin

Ograniczenia

  • 1 ≤ piles.length ≤ 5000
  • 1 ≤ piles[i] ≤ 109
  • piles.length ≤ h ≤ 109, więc odpowiedź zawsze istnieje.

Przykłady

Wejście
piles = [4, 10, 7, 3]h = 6
Wyjście
5
Wyjaśnienie
Przy prędkości 5 stosy 4, 10, 7 i 3 zajmują odpowiednio 1, 2, 2 i 1 godzinę: łącznie 6, co się mieści. Przy prędkości 4 zajmują 1, 3, 2 i 1 godzinę, czyli 7 — o jedną godzinę za dużo.

lock icon+22 ukrytych testów przy wysłaniu

challenge icon

Pytanie dodatkowe

Podobny problem: Koko ma d dni i zjada całe stosy w podanej kolejności, tyle stosów dziennie, ile zmieści się w dziennym limicie k bananów. Jakie jest najmniejsze k i które dwa elementy wyszukiwania binarnego się zmieniają?

Zresetuj kod
def minEatingSpeed(piles, h):
    # Wpisz kod tutaj
Przypadki testowe

Przypadek 1

Przypadek 2

Przypadek 3

Wejście

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

Oczekiwane

5