Menu
CoddyTech

Meeting Rooms

やさしい区間ソートpython iconjava iconcpp iconc iconjs icon+10

会議のリストが2つの配列として与えられます。会議 i は starts[i] から ends[i] まで行われます。ある人がすべての会議に出席したいと考えています。そのため、会議が重なってはいけません。ある会議の終了と同じ時刻に、別の会議を開始することはできます。その人がすべての会議に出席できる場合は true を、そうでない場合は false を返してください。

関数

canAttendMeetings(starts: integer-array, ends: integer-array) → boolean
startsinteger-array
各会議の開始時刻
endsinteger-array
各会議の終了時刻(開始時刻と同じインデックスにあります)
戻り値boolean
会議が重複していなければ true、そうでなければ false

制約

  • 1 ≤ starts.length == ends.length ≤ 5000
  • 0 ≤ starts[i] < ends[i] ≤ 106
  • 会議は並べ替えられていません。2つの会議が同一である場合があります。

例

入力
starts = [9, 13, 10]ends = [10, 15, 12]
出力
true
説明
時間順では、会議は9時から10時、10時から12時、13時から15時まで行われます。2つ目の会議は1つ目の会議が終わると同時に始まりますが、これは許可されているため、答えは true です。

lock icon提出時に隠しテスト+15件

challenge icon

発展問題

会議が1件ずつ予約される場合、すべてを再び並べ替えることなく、新しい予約をそれぞれスケジュールと照合して O(log n) で確認するにはどうすればよいでしょうか?

コードをリセット
def canAttendMeetings(starts, ends):
    # ここにコードを書いてください
テストケース

ケース1

ケース2

入力

starts = [9, 13, 10]
ends = [10, 15, 12]

期待値

true