讨论/《中级算法》 - 任务调度器/
《中级算法》 - 任务调度器
共 2 个回复
    public int leastInterval(char[] tasks, int n) {
        int[] ints = new int[26];
        //把所有值放入数组中
        for (int i = 0,len = tasks.length; i < len; i++) {
            ints[tasks[i] - 'A']++;
        }
        Arrays.sort(ints);

        //最后一行的个数
        int mod = 1;
        //一共多少行
        int everyLine = ints[25];
        for (int i = ints.length-1; i > 0 ; i--) {
            if(ints[i]==ints[i-1]) {
                mod++;//如果其他数跟最多的一样多,最后一行的个数+1
            }else{
                break;
            }
        }
        int res = (everyLine - 1) * (n + 1) + mod;
        
        return Math.max(res,tasks.length);
    }

看不懂