Menu
CoddyTech

Koko Eating Bananas

Koko a n tas de bananes, où piles[i] est le nombre de bananes dans le tas i, et il lui reste h heures avant le retour des gardes. Elle choisit une vitesse de consommation k, un nombre entier de bananes par heure, et la conserve. Chaque heure, elle mange k bananes dans un tas ; s’il en reste moins de k dans ce tas, elle le termine et se repose jusqu’à la fin de l’heure. Retournez la vitesse minimale k qui lui permet de terminer tous les tas en h heures.

Fonction

minEatingSpeed(piles: integer-array, h: integer) → integer
pilesinteger-array
le nombre de bananes dans chaque pile
hinteger
le nombre d’heures dont dispose Koko
Renvoieinteger
la plus petite vitesse entière de consommation, en bananes par heure, qui permet de terminer chaque tas en h heures

Contraintes

  • 1 ≤ piles.length ≤ 5000
  • 1 ≤ piles[i] ≤ 109
  • piles.length ≤ h ≤ 109, donc une réponse existe toujours.

Exemples

Entrée
piles = [4, 10, 7, 3]h = 6
Sortie
5
Explication
À la vitesse 5, les piles 4, 10, 7 et 3 prennent respectivement 1, 2, 2 et 1 heures : 6 au total, ce qui convient. À la vitesse 4, elles prennent respectivement 1, 3, 2 et 1 heures, soit 7, une heure de trop.

lock icon+22 tests cachés à la soumission

challenge icon

Pour aller plus loin

Un problème similaire : Koko a d jours et mange des tas entiers dans l’ordre donné, autant de tas par jour que le permet une limite quotidienne de k bananes. Quelle est la plus petite valeur de k, et quelles sont les deux parties de ta recherche binaire qui changent ?

Réinitialiser le code
def minEatingSpeed(piles, h):
    # Écrivez le code ici
Cas de test

Cas 1

Cas 2

Cas 3

Entrée

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

Attendu

5