餐饮商城网站建设,开发一个app的费用,华强北网站建设设计,东山县建设官方网站给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行#xff0c;并且每个任务都可以在 1 个单位时间内执行完。在任何一个单位时间#xff0c;CPU 可以完成一个任务#xff0c;或者处于待命状态。
然而并且每个任务都可以在 1 个单位时间内执行完。在任何一个单位时间CPU 可以完成一个任务或者处于待命状态。
然而两个 相同种类 的任务之间必须有长度为整数 n 的冷却时间因此至少有连续 n 个单位时间内 CPU 在执行不同的任务或者在待命状态。
你需要计算完成所有任务所需要的 最短时间 。
示例 1
输入tasks [“A”,“A”,“A”,“B”,“B”,“B”], n 2 输出8 解释A - B - (待命) - A - B - (待命) - A - B 在本示例中两个相同类型任务之间必须间隔长度为 n 2 的冷却时间而执行一个任务只需要一个单位时间所以中间出现了待命状态。 public int leastInterval(char[] tasks, int n) {int[] cntnew int[26];for(char c:tasks)cnt[c-A];Arrays.sort(cnt);int maxccnt[25],len1;for (int i24;i0;i--)if(maxccnt[i])len; else break;return Math.max(tasks.length,(maxc-1)*(n1)len);}