该题目要求模拟一个具有固定容量的定时器系统,根据任务的超时时刻和添加顺序,决定最终保留哪些任务,并输出最后超时任务的索引
创造一个优先队列,然后枚举每一个超时任务:
1.队列的大小<n,直接进队
2.队列的大小>=n,如果新任务的超时时间小于或等于队首的超时时间,则将队首任务移除,并将新任务插入队列。 如果新任务的超时时间大于队首的超时时间,则丢弃新任务。
现有一套定时器系统,其时钟精度为 1 个刻度,系统内最多可同时保留 n 个超时任务(容量为 n)。
每个任务都带有一个正整数超时时刻 t:当系统时钟走到该时刻时,对应任务开始执行。若若干任务在同一时刻超时,则按它们加入系统的先后次序依次执行。
向系统登记任务时遵循以下规则:
给定容量 n,以及在短于 1 个刻度的时间内依次加入的 m 个定时任务序列 tasks(当前时钟视为 0,因此这些任务均尚未超时)。请找出系统最终保留下来的任务中,最晚超时的那个任务在 tasks 中的下标(下标从 0 起算)。若存在多个任务超时时刻相同,取其中下标最大的那个。
开通会员即可查看完整视频题解: 1.题目讲解 2.思路分析 3.逐行代码手写
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册