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