Menu
CoddyTech

Minimum Platforms

Một nhà ga có lịch trình trong một ngày: tàu i đến vào lúc arrival[i] và rời đi vào lúc departure[i]. Thời gian là các số HHMM, tức giờ trên đồng hồ không có dấu hai chấm, nên 930 là 09:30.

Một đoàn tàu chiếm sân ga từ phút đến cho đến phút rời đi, tính cả hai phút này. Vì vậy, tàu đến đúng phút một tàu khác rời đi không thể dùng sân ga của tàu đó.

Hãy trả về số sân ga ít nhất mà nhà ga cần để không có tàu nào phải chờ.

Hàm

minimumPlatforms(arrival: integer-array, departure: integer-array) → integer
arrivalinteger-array
thời gian đến của mỗi chuyến tàu, dưới dạng số HHMM
departureinteger-array
thời gian khởi hành của mỗi chuyến tàu, dưới dạng số HHMM; departure[i] tương ứng với arrival[i]
Trả vềinteger
số lượng tàu lớn nhất ở nhà ga trong cùng một phút, tức là số sân ga ít nhất cần có

Ràng buộc

  • 1 ≤ arrival.length == departure.length ≤ 5000
  • 0 ≤ arrival[i] ≤ departure[i] ≤ 2359
  • Mỗi thời điểm đều có định dạng HHMM hợp lệ: hai chữ số cuối cùng không vượt quá 59.
  • Tất cả các chuyến tàu đều chạy trong cùng một ngày. Các mảng chưa được sắp xếp.

Ví dụ

Đầu vào
arrival = [900, 1500, 920, 1520, 1000, 1530]departure = [930, 1600, 1010, 1535, 1100, 1545]
Đầu ra
3
Giải thích
Lúc 15:30, có ba chuyến tàu đang ở nhà ga: chuyến từ 15:00 đến 16:00, chuyến từ 15:20 đến 15:35 và chuyến từ 15:30 đến 15:45. Không có phút nào có bốn chuyến tàu, nên 3 sân ga là đủ.
challenge icon

Câu hỏi mở rộng

Một số chuyến tàu đêm đến trước nửa đêm và khởi hành sau nửa đêm, nên số giờ khởi hành nhỏ hơn số giờ đến. Bạn sẽ đếm số sân ga như thế nào khi lịch trình vượt qua nửa đêm?

Đặt lại code
def minimumPlatforms(arrival, departure):
    # Viết code tại đây

Kiểm thử #1

Kiểm thử #2

Kiểm thử #3

Đối số

arrival = [900, 1500, 920, 1520, 1000, 1530]
departure = [930, 1600, 1010, 1535, 1100, 1545]

Đầu ra mong đợi

3