Menu
CoddyTech

Minimum Platforms

لدى محطة جدول مواعيد ليوم واحد: يصل القطار i في arrival[i] ويغادر في departure[i]. الأوقات أرقام بصيغة HHMM، أي وقت الساعة من دون النقطتين، لذا 930 تعني 09:30.

يشغل القطار رصيفه من دقيقة وصوله حتى دقيقة مغادرته، وكلتاهما مشمولتان. لذلك، لا يمكن لقطار يصل في الدقيقة التي يغادر فيها قطار آخر أن يستخدم رصيف ذلك القطار.

أعِد أقل عدد من الأرصفة التي تحتاج إليها المحطة حتى لا يضطر أي قطار إلى الانتظار.

الدالة

minimumPlatforms(arrival: integer-array, departure: integer-array) → integer
arrivalinteger-array
وقت وصول كل قطار، كرقم بتنسيق HHMM
departureinteger-array
وقت مغادرة كل قطار، كرقم بصيغة HHMM؛ ينتمي departure[i] إلى arrival[i]
تُرجعinteger
أكبر عدد من القطارات في المحطة خلال الدقيقة نفسها، وهو أقل عدد من الأرصفة المطلوبة

القيود

  • 1 ≤ arrival.length == departure.length ≤ 5000
  • 0 ≤ arrival[i] ≤ departure[i] ≤ 2359
  • كل وقت بصيغة HHMM هو وقت صالح: رقماه الأخيران لا يزيدان عن 59.
  • تسير جميع القطارات في اليوم نفسه. المصفوفات غير مرتبة.

أمثلة

المدخلات
arrival = [900, 1500, 920, 1520, 1000, 1530]departure = [930, 1600, 1010, 1535, 1100, 1545]
المخرجات
3
الشرح
في الساعة 15:30، تقف ثلاثة قطارات في المحطة: القطارات التي تمتد مواعيدها من 15:00 إلى 16:00، ومن 15:20 إلى 15:35، ومن 15:30 إلى 15:45. لا توجد أي دقيقة تشهد وجود أربعة قطارات، لذا تكفي 3 أرصفة.
challenge icon

سؤال إضافي

تصل بعض القطارات الليلية قبل منتصف الليل وتغادر بعده، لذا يكون رقم المغادرة أصغر من رقم الوصول. كيف ستحسب الأرصفة عندما يمتد الجدول الزمني عبر منتصف الليل؟

إعادة ضبط الشيفرة
def minimumPlatforms(arrival, departure):
    # اكتب الكود هنا

اختبار #1

اختبار #2

اختبار #3

الوسائط

arrival = [900, 1500, 920, 1520, 1000, 1530]
departure = [930, 1600, 1010, 1535, 1100, 1545]

الإخراج المتوقع

3