Schedule tasks (with cooldown n between same tasks). Find minimum intervals needed.

Input: tasks=["A","A","A","B","B","B"], n=2 → Output: 8. A→B→idle→A→B→idle→A→B Input: tasks=["A","A","A","B","B","B"], n=0 → Output: 6

Formula: max(tasks.length, (maxCount-1)*(n+1) + countOfMaxFreqTasks)

public int leastInterval(char[] tasks, int n) { int[] freq = new int[26]; for (char t : tasks) freq[t - 'A']++; Arrays.sort(freq); int maxCount = freq[25]; int countMax = 0; for (int f : freq) if (f == maxCount) countMax++; return Math.max(tasks.length, (maxCount - 1) * (n + 1) + countMax); }