Menu
CoddyTech
flag Ar iconالعربيةdown icon

Koko Eating Bananas

لدى Koko عدد 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 ساعة واحدة وساعتين وساعتين وساعة واحدة: المجموع 6، وهذا يناسب. وعند السرعة 4، تستغرق ساعة واحدة و3 ساعات وساعتين وساعة واحدة، أي 7 ساعات، ساعة واحدة أكثر من اللازم.

lock icon+22 اختبارات مخفية عند الإرسال

challenge icon

سؤال إضافي

مسألة توأم: لدى Koko عدد d من الأيام، وتأكل أكوامًا كاملة بالترتيب المعطى، وتأكل في اليوم أكبر عدد من الأكوام ضمن حد يومي قدره k موزة. ما أصغر قيمة لـ k، وأي جزأين من بحثك الثنائي يتغيران؟

إعادة ضبط الشيفرة
def minEatingSpeed(piles, h):
    # اكتب الكود هنا
حالات الاختبار

الحالة 1

الحالة 2

الحالة 3

المدخلات

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

المتوقع

5