253. Meeting Rooms II (Approach 1)
Intitution
Complexity
Space Complexity
Time Complexity
Code
public int minMeetingRooms(int[][] intervals) {
// TreeMap to hold time -> net change in rooms (+1 for start, -1 for end)
TreeMap<Integer, Integer> timeToRoomChange = new TreeMap<>();
for (int[] meeting : intervals) {
int startTime = meeting[0];
int endTime = meeting[1];
// Increment room count at start time
timeToRoomChange.put(startTime, timeToRoomChange.getOrDefault(startTime, 0) + 1);
// Decrement room count at end time
timeToRoomChange.put(endTime, timeToRoomChange.getOrDefault(endTime, 0) - 1);
}
int ongoingMeetings = 0;
int maxConcurrentMeetings = 0;
// Sweep through the time points in order
for (int time : timeToRoomChange.keySet()) {
ongoingMeetings += timeToRoomChange.get(time);
maxConcurrentMeetings = Math.max(maxConcurrentMeetings, ongoingMeetings);
}
return maxConcurrentMeetings;
}
Last updated