290. My Calendar III
A `k`-booking happens when `k` events have some non-empty intersection (i.e., there is some time that is common to all `k` events.) You are given some events `[startTime, endTime)`, after each given event, return an integer `k` representing the maximum `k`-booking between all the previous events. Implement the `MyCalendarThree` class: - `MyCalendarThree()` Initializes the object. - `int book(int startTime, int endTime)` Returns an integer `k` representing the largest integer such that there exists a `k`-booking in the calendar.
Examples
Input: ["MyCalendarThree","book","book","book","book","book","book"] [[],[10,20],[50,60],[10,40],[5,15],[5,10],[25,55]]
Output: [null,1,1,2,3,3,3]
Explanation: The maximum overlap grows to 3 once three events share [10,15].
Constraints
- 0 <= startTime < endTime <= 10^9
- At most 400 calls will be made to book.
Run checks all cases above. Submit evaluates all test cases.