LeetCode 252. 会议室
题目描述
✅ 252. 会议室
思路分析
解法一:排序 + 扫描(推荐)
核心思路:
- 按照会议开始时间排序。
- 依次检查相邻会议是否重叠。
- 只要存在重叠,返回
false。
复杂度分析:
- 时间复杂度:O(n log n),其中 n 表示会议数量。
- 空间复杂度:O(1)(忽略排序开销)。
class Solution {
public boolean canAttendMeetings(int[][] intervals) {
Arrays.sort(intervals, (a, b) -> a[0] - b[0]);
for (int i = 1; i < intervals.length; i++) {
// 判断是否与前一个会议重叠
if (intervals[i][0] < intervals[i - 1][1]) {
return false;
}
}
return true;
}
}
func canAttendMeetings(intervals [][]int) bool {
sort.Slice(intervals, func(i, j int) bool {
return intervals[i][0] < intervals[j][0]
})
for i := 1; i < len(intervals); i++ {
// 判断是否与前一个会议重叠
if intervals[i][0] < intervals[i-1][1] {
return false
}
}
return true
}
相似题目
| 题目 | 难度 | 考察点 |
|---|---|---|
| 253. 会议室 II | 中等 | 排序、堆 |
| 56. 合并区间 | 中等 | 区间合并 |
| 57. 插入区间 | 中等 | 区间合并 |
| 435. 无重叠区间 | 中等 | 贪心 |
| 452. 用最少数量的箭引爆气球 | 中等 | 贪心 |
本博客所有文章除特别声明外,均采用
CC BY-NC-SA 4.0
许可协议,转载请注明出处!