meetingRooms
输入配置
执行过程
按开始时间排序会议
当前检查
前一个
冲突
算法说明
会议室问题:排序后检查相邻会议是否冲突。计算最少会议室数使用双指针分别处理开始和结束时间。时间复杂度O(n log n)。
会议室问题 - 判断是否能参加所有会议及需要的最少会议室数量。
函数签名
typescript
function canAttendMeetings(intervals: Interval[]): boolean
function minMeetingRooms(intervals: Interval[]): number
interface Interval {
start: number
end: number
}参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
intervals | Interval[] | 是 | 会议时间数组 |
返回值
| 类型 | 说明 |
|---|---|
boolean | canAttendMeetings返回是否能参加所有会议 |
number | minMeetingRooms返回最少会议室数量 |
工作原理
canAttendMeetings
- 按开始时间排序
- 检查相邻会议是否有时间重叠
时间复杂度: O(n log n)
minMeetingRooms
- 分别提取并排序开始和结束时间
- 使用双指针模拟会议的开始和结束
- 维护当前需要的会议室数量
时间复杂度: O(n log n)
空间复杂度: O(n)