My Calendar I
MediumArrayBinary SearchDesignSegment TreeOrdered Set
Solution
export class MyCalendar {
private readonly booked: Array<{ start: number; end: number }>;
constructor() {
this.booked = [];
}
book(start: number, end: number): boolean {
for (const b of this.booked) {
if (Math.max(b.start, start) < Math.min(b.end, end)) {
return false;
}
}
this.booked.push({ start, end });
return true;
}
}
Complexity
- Time:
O(N)
- Space:
O(N)