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