解题思路
在看了一位博主的插旗法介绍后,三道题轻轻松松解决,等于是三题一解,思路上都是插旗法,并且代码上几乎没什么变化,所以。。。这是困难题?感兴趣的同学可以从链接进去了解,我的部分理解也放在了评论区,代码如下:
代码
class MyCalendarThree {
public:
map<int, int> mp;
MyCalendarThree() {
}
int book(int start, int end) {
mp[start] += 1;
mp[end] -= 1;
int ans = 0, cur = 0;
for(auto& [a, b] : mp) {
cur += b;
ans = max(ans, cur);
}
return ans;
}
};
/**
* Your MyCalendarThree object will be instantiated and called as such:
* MyCalendarThree* obj = new MyCalendarThree();
* int param_1 = obj->book(start,end);
*/