621. Task Scheduler

class Solution {
public:
    int leastInterval(vector<char>& tasks, int n) {
        int freq[26] = {0};
        for (auto t : tasks) {
            freq[t-'A']++;
        }
        int max_freq = 0, max_freq_count = 0;
        for (int i = 0; i < 26; i++) {
            if (freq[i] > max_freq) {
                max_freq = freq[i];
                max_freq_count = 1;
            }
            else if (freq[i] == max_freq)
                max_freq_count++;
        }
        int res = max_freq * max(n+1, max_freq_count);
        if (n+1 > max_freq_count)
            res -= n+1 - max_freq_count;
        return max(res, (int)tasks.size());
    }
};
原文地址:https://www.cnblogs.com/JTechRoad/p/9110683.html