Menu
CoddyTech

Meeting Rooms

Bạn nhận được danh sách các cuộc họp dưới dạng hai mảng: cuộc họp i diễn ra từ starts[i] đến ends[i]. Một người muốn tham dự tất cả các cuộc họp, vì vậy không có hai cuộc họp nào được trùng thời gian. Một cuộc họp có thể bắt đầu đúng lúc cuộc họp khác kết thúc. Trả về true nếu người đó có thể tham dự mọi cuộc họp, nếu không thì trả về false.

Hàm

canAttendMeetings(starts: integer-array, ends: integer-array) → boolean
startsinteger-array
thời gian bắt đầu của mỗi cuộc họp
endsinteger-array
thời gian kết thúc của mỗi cuộc họp, ở cùng chỉ số với thời gian bắt đầu
Trả vềboolean
true nếu không có hai cuộc họp nào bị trùng lịch, false nếu không

Ràng buộc

  • 1 ≤ starts.length == ends.length ≤ 5000
  • 0 ≤ starts[i] < ends[i] ≤ 106
  • Các cuộc họp không được sắp xếp. Hai cuộc họp có thể giống hệt nhau.

Ví dụ

Đầu vào
starts = [9, 13, 10]ends = [10, 15, 12]
Đầu ra
true
Giải thích
Theo thứ tự thời gian, các cuộc họp diễn ra từ 9 đến 10, từ 10 đến 12 và từ 13 đến 15. Cuộc họp thứ hai bắt đầu ngay khi cuộc họp thứ nhất kết thúc, điều này được phép, nên đáp án là true.
challenge icon

Câu hỏi mở rộng

Nếu các cuộc họp được đặt lần lượt, bạn sẽ kiểm tra từng cuộc họp mới với lịch trình trong O(log n) như thế nào mà không cần sắp xếp lại mọi thứ?

Đặt lại code
def canAttendMeetings(starts, ends):
    # Viết code ở đây

Kiểm thử #1

Kiểm thử #2

Đối số

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

Đầu ra mong đợi

true