LeetCode 732 我的日程安排表 III[插旗法] HERODING的LeetCode之路

Posted HERODING23

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 732 我的日程安排表 III[插旗法] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。

解题思路

在看了一位博主的插旗法介绍后,三道题轻轻松松解决,等于是三题一解,思路上都是插旗法,并且代码上几乎没什么变化,所以。。。这是困难题?感兴趣的同学可以从链接进去了解,我的部分理解也放在了评论区,代码如下:

代码

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);
 */

以上是关于LeetCode 732 我的日程安排表 III[插旗法] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章

区间和与线段树

数据结构与算法之深入解析“我的日程安排表III”的求解思路与算法示例

leetcode731 我的日程表安排II

My Calendar III

leetcode 729. My Calendar I | 729. 我的日程安排表 I(线段树)

每日一题731. 我的日程安排表Ⅱ