【分析】用TreeMap的floorKey判断区间是否重合即可。
TreeMap以左端点为key进行排序,超找<=right的第一个key,如果这个key的value也就是右端点>=left,说明两个区间重合。
class MyCalendar {
TreeMap<Integer, Integer> map = new TreeMap();
public MyCalendar() {
}
public boolean book(int start, int end) {
var entry = map.floorEntry(end - 1);
if(entry != null){
// System.out.println(entry.getKey() + " " + entry.getValue());
if(entry.getValue() >= start) return false;
}
map.put(start, end - 1);
return true;
}
}
/**
* Your MyCalendar object will be instantiated and called as such:
* MyCalendar obj = new MyCalendar();
* boolean param_1 = obj.book(start,end);
*/