Menu
CoddyTech

Meeting Rooms II

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ỗi phòng chỉ chứa một cuộc họp tại một thời điểm, và một cuộc họp có thể bắt đầu trong phòng đúng lúc cuộc họp khác tại đó kết thúc.

Viết một hàm tên là minMeetingRooms trả về số phòng ít nhất có thể chứa tất cả các cuộc họp.

Hàm

minMeetingRooms(starts: integer-array, ends: integer-array) → integer
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, tại cùng chỉ số với thời gian bắt đầu
Trả vềinteger
số phòng ít nhất có thể chứa tất cả các cuộc họp

Ràng buộc

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

Ví dụ

Đầu vào
starts = [4, 1, 7, 2]ends = [8, 5, 9, 6]
Đầu ra
3
Giải thích
Vào thời điểm 4, các cuộc họp từ 1 đến 5, từ 2 đến 6 và từ 4 đến 8 đều đang diễn ra, nên bạn cần ít nhất 3 phòng. Ba phòng là đủ: cuộc họp từ 7 đến 9 sử dụng phòng được giải phóng lúc 5.
challenge icon

Câu hỏi mở rộng

Bạn cũng có thể cho biết mỗi cuộc họp diễn ra ở phòng nào, mà không dùng nhiều phòng hơn số phòng trong lời giải không?

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

Kiểm thử #1

Kiểm thử #2

Kiểm thử #3

Đối số

starts = [4, 1, 7, 2]
ends = [8, 5, 9, 6]

Đầu ra mong đợi

3