158. 24年10月-华为留学生-1.最后超时的定时任务索引号
难度 3- 标签:
题目描述
题解
题库
24年10月-华为留学生-1.最后超时的定时任务索引号
题目内容
有这样一个定时器系统:
(1) 该系统精度为1刻度,可容纳n个超时任务(即容量为n);
(2) 每个任务里包含该任务超时时刻t(当系统时钟到达t时,该任务开始执行),t为正整数;
(3) 同一时刻超时的任务按照加入系统的先后顺序依次执行;
(4) 当定时器系统中任务数不足n个时,可直接添加定时任务;
(5) 当定时器系统中任务数达到n个时,若待添加任务的超时时刻为ti,系统中最后执行的任务的超时时刻为tj,
- 如果ti > tj,丢弃待添加的任务;
- 否则丢弃系统中最晚执行的超时任务,并将待添加任务加入系统。
现给定该定时器系统容量n,短时内(不到1刻度)依次向该定时器系统添加m个定时任务tasks,假定当前时钟为0时刻,所有任务尚未超时。请输出该定时器系统中最后超时的任务索引号(下标从0开始)。若有多个任务同时超时,输出最大的索引号。
输入描述
第一行:定时器系统容量n;1 ≤ n ≤ 10³
第二行:定时任务数m;1 ≤ m ≤ 10⁶
第三行:定时任务列表tasks,空格分隔;1 ≤ tasks[i] ≤ 10⁵
输出描述
最后超时的任务索引号(下标从0开始)。
样例1
输入
2
12
1 2 3 4 6 19 20 21 22 23 25 1
输出
11
说明
定时器系统容量为2,最多容纳2个定时任务,因此最终定时器里只会存在两个任务: 分别是1(索引号0)、1(索引号11),这两个任务同时超时,题目要求返回更大的索引,因此返回11
样例2
输入
1
2
10 2
输出
1
说明
定时器系统容量为1,最多容纳1个定时任务,因此最终定时器里只会存在1个任务: 2: 2对应索引号为1,因此返回1
样例3
输入
20
5
1 2 3 4 5
输出
4
说明
定时器系统容量为20,最多容纳20个定时任务,而添加的任务数为5,没有超过定时器系统规格,因此最终定时器里会 存在以下任务:1 2 3 4 5; 5最晚超时,因此返回5对应的下标4