待定
一.相同元素有一定间隔
- 用桶来演示,一共s轮,代表有s个桶,其中,每个桶都大于等于n+1(包括冷却)
- 装桶规则,在每个桶都大于n+1之前,尽量将每个桶都装满(也就是说每一轮中,不必将所有不同任务都过一遍),每个桶装大于n+1后,总耗时就是任务总数
int leastInterval(vector<char>& tasks, int n) {
vector<int> dict(26,0);
int res=0,cnt=1,len=tasks.size();
for(auto &ch:tasks){
dict[ch-'A']++;
}
sort(dict.rbegin(),dict.rend()); //逆序
//sort(dict.begin(),dict.end(),[](int& x,int&y){return x>y;});
while(cnt<dict.size()&&dict[cnt]==dict[0]) //dict[0],桶的个数
cnt++; //最后一个桶的大小
res=max(len,cnt+(n+1)*(dict[0]-1));
return res;
}