方法一:贪心算法
解题思路:
使用贪心的思想,先把出现最多的任务分配了(即每隔n个单位时间分配一个任务),然后再把其它任务填上。如下图
所以需要先计算各任务出现的次数,找到出现最多的任务,程序中使用map来计数,然后复制到vector,再通过自定义的比较函数cmp,对vector进行排序。
结果的计算公式为:(x - 1) * (n + 1) + num
其中,x表示出现次数最多的任务的次数,n表示输入参数中的时间间隔,num表示出现次数为 x 的任务总数。
有一种特殊情况需要考虑,那就是:num的值要大于 n 的时候,例子如下:
输入:["A", "A","A","B","B","B","C","C","C","D","D","D"], n = 2
按照公式(x - 1) * (n &#