Menu
CoddyTech

Meeting Rooms

מקבלים רשימה של פגישות כשני מערכים: פגישה 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
  • הפגישות אינן ממוינות. ייתכן ששתי פגישות יהיו זהות.

דוגמאות

קלט
starts = [9, 13, 10]ends = [10, 15, 12]
פלט
true
הסבר
לפי סדר הזמנים, הפגישות מתקיימות מ־9 עד 10, מ־10 עד 12 ומ־13 עד 15. הפגישה השנייה מתחילה ברגע שהראשונה מסתיימת, וזה מותר, לכן התשובה היא true.

lock icon+15 בדיקות נסתרות בשליחה

challenge icon

שאלת המשך

אם פגישות מוזמנות אחת בכל פעם, איך תבדקו כל הזמנה חדשה מול לוח הזמנים ב־O(log n), בלי למיין הכול מחדש?

איפוס הקוד
def canAttendMeetings(starts, ends):
    # כתבו כאן קוד
מקרי בדיקה

מקרה 1

מקרה 2

קלט

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

צפוי

true