Menu
CoddyTech

Koko Eating Bananas

MittelBinäre Suchepython iconjava iconcpp iconc iconjs icon+10

Koko hat n Bananenhaufen, wobei piles[i] die Anzahl der Bananen im Haufen i angibt, und h Stunden, bis die Wächter zurückkommen. Sie wählt eine Essgeschwindigkeit k, eine ganze Anzahl Bananen pro Stunde, und behält sie bei. Jede Stunde isst sie k Bananen aus einem Haufen; wenn darin weniger als k übrig sind, isst sie den Haufen vollständig auf und ruht sich aus, bis die Stunde vorbei ist. Gib die kleinste Geschwindigkeit k zurück, mit der sie alle Haufen innerhalb von h Stunden leeren kann.

Funktion

minEatingSpeed(piles: integer-array, h: integer) → integer
pilesinteger-array
die Anzahl der Bananen in jedem Haufen
hinteger
die Anzahl der Stunden, die Koko hat
Gibt zurückinteger
die kleinste ganzzahlige Essgeschwindigkeit in Bananen pro Stunde, bei der jeder Stapel innerhalb von h Stunden aufgegessen wird

Einschränkungen

  • 1 ≤ piles.length ≤ 5000
  • 1 ≤ piles[i] ≤ 109
  • piles.length ≤ h ≤ 109, also existiert immer eine Antwort.

Beispiele

Eingabe
piles = [4, 10, 7, 3]h = 6
Ausgabe
5
Erklärung
Bei Geschwindigkeit 5 benötigen die Stapel 4, 10, 7 und 3 jeweils 1, 2, 2 und 1 Stunden: insgesamt 6, was passt. Bei Geschwindigkeit 4 benötigen sie 1, 3, 2 und 1 Stunden, also 7 Stunden – eine Stunde zu viel.

lock icon+22 versteckte Tests beim Einreichen

challenge icon

Weiterführende Frage

Ein verwandtes Problem: Koko hat d Tage und isst ganze Haufen in der vorgegebenen Reihenfolge, wobei sie pro Tag so viele Haufen isst, wie in ein Tageslimit von k Bananen passen. Was ist das kleinste k, und welche zwei Teile deiner binären Suche ändern sich?

Code zurücksetzen
def minEatingSpeed(piles, h):
    # Schreibe hier den Code
Testfälle

Fall 1

Fall 2

Fall 3

Eingabe

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

Erwartet

5