力扣621.任务调度器
-
- 桶思想
- 当桶放不满时 答案为桶面积 maxcount(最后一行) + (max - 1)(n+1)
- 当桶放的满时 答案为任务总数 tasks.size()
- 最终两者取大即可
cpp
class Solution {
public:
int leastInterval(vector<char>& tasks, int n) {
int len = tasks.size();
vector<int> vec(26);
for(char c:tasks) vec[c-'A']++;
sort(vec.begin(),vec.end(),[](int &x,int &y){
return x > y;
});
int cnt = 1;
while(cnt < vec.size() && vec[cnt] == vec[0]) cnt ++;
return max(len,cnt+(n+1)*(vec[0]-1) );
}
};