package leetcode;
import java.util.Arrays;
public class demo_621 {
    public int leastInterval(char[] tasks, int n) {
        int nums[] =new int[26];
        int sum=0;
        for(int i=0;i<tasks.length;i++) {
            nums[tasks[i]-'A']=nums[tasks[i]-'A']+1;
        }
        Arrays.sort(nums);
        //先确定最大距离
        sum=sum+(n+1)*(nums[25]-1)+1;
        for(int i=24;i>=0;i--) {
            //如果有和最多相同数量的字母,则数量是一样的
            if(nums[i]==nums[25]) {
                sum=sum+1;
            }
        }
        //间隔之间有空隙,则为sum,否则即为原数组长度
        return Math.max(sum, tasks.length);
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        demo_621 demo=new demo_621();
        char[] tasks= {'A','A','A','A','A','A','B','C','D','E','F','G'};
        System.out.println(demo.leastInterval(tasks, 2));
    }
}