Java实现 LeetCode 621 任务调度器(暴力大法)
2023-09-14 08:58:02 时间
621. 任务调度器
给定一个用字符数组表示的 CPU 需要执行的任务列表。其中包含使用大写的 A - Z 字母表示的26 种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。CPU 在任何一个单位时间内都可以执行一个任务,或者在待命状态。
然而,两个相同种类的任务之间必须有长度为 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。
你需要计算完成所有任务所需要的最短时间。
示例 :
输入:tasks = [“A”,“A”,“A”,“B”,“B”,“B”], n = 2
输出:8
解释:A -> B -> (待命) -> A -> B -> (待命) -> A -> B.
提示:
任务的总个数为 [1, 10000]。
n 的取值范围为 [0, 100]。
PS:
A-X-X-A-X-X-A;
这是间隔两个
count【25】-1是因为最后一个我放进maxcount了
n+1是因为我虽然间隔两个但是其实我是三个一组
class Solution {
public int leastInterval(char[] tasks, int n) {
int[] count = new int[26];
for (int i = 0; i < tasks.length; i++) {
count[tasks[i]-'A']++;
}//统计词频
Arrays.sort(count);//词频排序,升序排序,count[25]是频率最高的
int maxCount = 0;
//统计有多少个频率最高的字母
for (int i = 25; i >= 0; i--) {
if(count[i] != count[25]){
break;
}
maxCount++;
}
//n小于种类的时候,会比长度小
//公式算出的值可能会比数组的长度小,取两者中最大的那个
return Math.max((count[25] - 1) * (n + 1) + maxCount , tasks.length);
}
}
相关文章
- java h2数据库_JAVA 项目中使用 H2 数据库
- java pfx_如何在Java中读取.pfx文件的内容?
- 我的世界java版需要多少钱_我的世界Java版20w49a快照版[通俗易懂]
- 说一下java的运行机制_Java运行机制是什么?「建议收藏」
- java课程设计成绩管理系统_Java课程设计–学生成绩管理系统
- java webservice实现_JAVA WebService的实现方式
- java 生成xml dom4j_Java生成xml——DOM4J生成
- java字符串转换为json对象6_Json对象与Json字符串的转化、JSON字符串与Java对象的转换…
- vscode配置java环境变量_配置Java
- idea创建java项目的步骤_Java为什么新建不了项目
- 【JAVA】Java 日志打印规范
- java 标准输出与标准错误 out与 err 区别 用法 联系 java中的out与err区别 System.out和System.err的区别 System.out.println和System.err.println的区别 Java重定向System.out和System.err详解编程语言
- Java程序监控指标详解编程语言
- 实现Java程序操作MySQL数据库(java调用mysql)
- Java操作MySQL数据库:实现看似不可能的梦想(java连接mysql数据库)
- Java与MySQL的实现协同(java和mysql)
- 深入Java:利用API快速创建MySQL表(java创建mysql表)
- Java监控Oracle性能的最佳实践(java监控oracle)
- 数据库轻松搞定:用Java访问Oracle数据库(java访问oracle)
- Java里的Redis事务处理(redis事务java)
- MacOS下Java开发环境搭建指南(macos开发java)
- 让Java桥接Linux新世界的重要性(java链接linux)
- 使用Java远程控制Linux 实现简单、高效的服务器管理(java控制linux)
- 管理Linux下Java版本管理:轻松实现多版本切换(linux下java版本)