September 08, 2019

621. Task Scheduler

621. Task Scheduler

Greedy

class Solution {
    public int leastInterval(char[] tasks, int n) {
        int[] freqs = new int[26];
        for (int task : tasks) {
            freqs[task - 'A']++;
        }
        int maxFreq = 0;
        for (int freq : freqs) {
            maxFreq = Math.max(maxFreq, freq);
        }
        int res = (maxFreq - 1) * (n + 1);
        for (int freq : freqs) {
            if (freq == maxFreq) {
                res ++;
            }
        }
                
        return Math.max(tasks.length, res);
    }
}

Priority Queue

TODO

comments powered by Disqus