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));
}
}