给你一组初始事件列表,其中每个事件有一个唯一的 eventId 和一个 priority(优先级)。
实现 EventManager 类:
EventManager(int[][] events) 使用给定事件初始化管理器,其中 events[i] = [eventIdi, priorityi]。void updatePriority(int eventId, int newPriority) 更新具有 id 为 eventId 的 活跃 事件的优先级为 newPriority。int pollHighest() 移除并返回具有 最高优先级 的 活跃事件 的 eventId。如果有多个活动事件具有相同的优先级,则返回 eventId 最小的事件。如果没有活跃事件,则返回 -1。如果一个事件没有被 pollHighest() 移除,则称其为 活跃事件。
示例 1:
输入:
["EventManager", "pollHighest", "updatePriority", "pollHighest", "pollHighest"]
[[[[5, 7], [2, 7], [9, 4]]], [], [9, 7], [], []]
输出:
[null, 2, null, 5, 9]
解释
EventManager eventManager = new EventManager([[5,7], [2,7], [9,4]]); // 使用三个事件初始化管理器示例 2:
输入:
["EventManager", "pollHighest", "pollHighest", "pollHighest"]
[[[[4, 1], [7, 2]]], [], [], []]
输出:
[null, 7, 4, -1]
解释
EventManager eventManager = new EventManager([[4,1], [7,2]]); // 使用两个事件初始化管理器
提示:
1 <= events.length <= 105events[i] = [eventId, priority]1 <= eventId <= 1091 <= priority <= 109events 中的所有 eventId 值都是 唯一的 。1 <= newPriority <= 109updatePriority,eventId 都指向一个 活跃事件。updatePriority 和 pollHighest 的总调用次数最多为 105 次。