其他分享
首页 > 其他分享> > 621. 任务调度器

621. 任务调度器

作者:互联网

文章目录

1.题目

输入: tasks = ["A","A","A","B","B","B"], n = 2
输出: 8
执行顺序: A -> B -> (待命) -> A -> B -> (待命) -> A -> B.

2.代码

所以整体的解题步骤如下:
计算每个任务出现的次数
找出出现次数最多的任务,假设出现次数为 x
计算至少需要的时间 (x - 1) * (n + 1),记为 min_time
计算出现次数为 x 的任务总数 count,计算最终结果为 min_time + count

class Solution {
public:
    int leastInterval(vector<char>& tasks, int n) {
    	vecot<int> res(26,0);
    	for (int i=0;i<tasks.size();++i)
    	{
    		++res[tasks[i]-'A'];
    	}
		
		sort(res.begin(),res.end());
		int i=25,x=res[25];
		while (i>=0 && x==res[i]) --i;
		return max(res.size(),(x-1)*(n+1)+(25-i));
    }
};

标签:25,621,tasks,题目,int,res,次数,任务调度
来源: https://blog.csdn.net/u011436427/article/details/122614386