Menu
CoddyTech

Minimum Platforms

ある駅の1日分の時刻表があります。列車 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形式の時刻です。末尾の2桁は最大59です。
  • すべての列車は同じ日に運行します。配列はソートされていません。

例

入力
arrival = [900, 1500, 920, 1520, 1000, 1530]departure = [930, 1600, 1010, 1535, 1100, 1545]
出力
3
説明
15:30には、駅に3本の列車が停車しています。15:00から16:00までの列車、15:20から15:35までの列車、15:30から15:45までの列車です。4本になる分はないため、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