您好,欢迎来到刀刀网。
搜索
您的当前位置:首页【Daily Code】 732. 我的日程安排表 III

【Daily Code】 732. 我的日程安排表 III

来源:刀刀网
    private:
    vector<pair<int, int>> v;
    vector<pair<pair<int, int>, int >> p;
    map<int, int> cnt;
    int N = (int) 1e9;
    Node root = new Node();
public:
    MyCalendarThree() {
        
    }

    class Node { 
        Node left, right;
        int val, add;
    }
    void update(Node node, int start, int end, int l, int r, int val) { 
        if(l <= start && end <= r) {
            node.val += val;
            node.add += val;
            return ;
        }
        pushDown(node);
        int mid = (start + end) / 2;
        if(l <= mid) update(node.left, start, end, l, r, val);
        if(r > mid) update(node.right, mid + 1, end, l, r, val);
        pushUp(node);
    }

    void pushUp(Node node){
        node.val = Math.max(node.left.val, node.right.val);
    }
    void pushDown(Node node) {
        if(node.left == null) node.left = new Node();
        if(node.right == null) node.right = new Node();
        if(node.add == 0) return ;
        node.left.val += node.add;
        node.right.val += node.add;
        node.left.add += node.add;
        node.right.add +=  node.add;
        node.add = 0;
        
    }

    int query(Node node, int start, int end, int l, int r) {
        if(l <= start && end <= r) return node.val;
        pushDown(node);
        int mid = (start + end) / 2, ans = 0;
        if(l <= mid) ans = query(node.left, start, mid, l, r);
        if(r > mid) ans = query(mode.right, mid, end, l, r);
        return ans;
    }
    
    int book(int startTime, int endTime) {
        update(root, 0, N, startTime, endTime - 1, 1);
        return root.val;
    }
};

/**
 * Your MyCalendarThree object will be instantiated and called as such:
 * MyCalendarThree* obj = new MyCalendarThree();
 * int param_1 = obj->book(startTime,endTime);
 */++

https://leetcode.cn/problems/my-calendar-iii/solutions/1540274/by-lfool-jnv9

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务