Menu
CoddyTech

Meeting Rooms

Toplantıların listesini iki dizi olarak alırsınız: i numaralı toplantı starts[i] anında başlar ve ends[i] anında biter. Bir kişi bunların hepsine katılmak istiyor, bu nedenle hiçbir iki toplantı çakışmamalıdır. Bir toplantı, başka bir toplantının bittiği anda başlayabilir. Kişi her toplantıya katılabiliyorsa true, aksi takdirde false döndürün.

Fonksiyon

canAttendMeetings(starts: integer-array, ends: integer-array) → boolean
startsinteger-array
her toplantının başlangıç saati
endsinteger-array
her toplantının bitiş zamanı, başlangıç zamanıyla aynı indekste
Döndürürboolean
Hiçbir toplantı çakışmıyorsa true, aksi takdirde false

Kısıtlar

  • 1 ≤ starts.length == ends.length ≤ 5000
  • 0 ≤ starts[i] < ends[i] ≤ 106
  • Toplantılar sıralanmamıştır. İki toplantı aynı olabilir.

Örnekler

Girdi
starts = [9, 13, 10]ends = [10, 15, 12]
Çıktı
true
Açıklama
Zaman sırasına göre toplantılar 9'dan 10'a, 10'dan 12'ye ve 13'ten 15'e kadar sürer. İkincisi, ilki biter bitmez başlar; buna izin verildiği için yanıt true olur.

lock iconGönderirken +15 gizli test

challenge icon

Ek soru

Toplantılar her seferinde bir tane rezerve ediliyorsa, her yeni rezervasyonu her şeyi yeniden sıralamadan O(log n) sürede programa göre nasıl kontrol edersiniz?

Kodu sıfırla
def canAttendMeetings(starts, ends):
    # Kodu buraya yazın
Test durumları

Durum 1

Durum 2

Girdi

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

Beklenen

true