leetcode253——Meeting Rooms II
程序员文章站
2022-06-02 22:45:53
...
参考地址:253. Meeting Rooms II
题目要求:
分析:
我没有开leetcode会员,在人家的博客上看到这道题目的,不知道是在哪里看到过这道题目,反正之前肯定是见过的。
- 在这里,我们先将所有的左闭区间和右闭区间都重新取出来进行排序,排序方法可以重写一个sort方法,也可以将每个值取出,然后进行排序;
- 将开始时间标记为1,结束时间标记为-1;
- 再从左到右遍历,将它们标记的值相加,取最大值即可。
具体代码如下:
public int minMeetingRooms(Interval[] intervals) {
int[] starts = new int[intervals.length];
int[] ends = new int[intervals.length];
for (int i = 0; i < starts.length; i++) {
starts[i] = intervals[i].start;
ends[i] = intervals[i].end;
}
Arrays.sort(starts);
Arrays.sort(ends);
int count = 0;
int result = 0;
for (int i = 0, j = 0; i < starts.length;) {
if (starts[i] < ends[j]) {
count++;
i++;
result = Math.max(result, count);
} else {
j++;
count--;
}
}
return result;
}