题目解析
本题考察贪心算法。
我的解题思路如下:
首先,我们统计出各种任务的数量,并找出数量最多的任务,比如题目用例中:
- 任务2的数量是:3个
- 任务3的数量是:1个
其中任务2的数量最多,有3个,我们假设k=3,那么完成所有任务所需时间至少为:
(k - 1) * (n + 1) + 1
画图示意如下:
其中n为冷却时间,k为最多任务的数量。
如果其他任务数量较少的话,可以直接在任务2的冷却时间中运行。比如题目用例运行图如下:
此时,总用时仍然为 (k - 1) * (n + 1) + 1。
理解了上面公式后,我们可以继续看下几种特殊情况:
1、数量最多的任务有多个,比如用例
2,2,2,3,3,3