ireal 网站建设,seo引擎优化是什,公司部门职能介绍,成品在线短视频免费入口提示#xff1a;文章写完后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 目录 前言
一、题目-任务调度器
1.题目描述
2.思路与代码
2.1 思路
2.2 代码
总结 前言
提示#xff1a;这里可以添加本文要记录的大概内容#xff1a;
4月7日练习… 提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档 目录 前言
一、题目-任务调度器
1.题目描述
2.思路与代码
2.1 思路
2.2 代码
总结 前言
提示这里可以添加本文要记录的大概内容
4月7日练习内容 提示以下是本篇文章正文内容下面案例可供参考
一、题目-任务调度器
1.题目描述
给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行并且每个任务都可以在 1 个单位时间内执行完。在任何一个单位时间CPU 可以完成一个任务或者处于待命状态。
然而两个 相同种类 的任务之间必须有长度为整数 n 的冷却时间因此至少有连续 n 个单位时间内 CPU 在执行不同的任务或者在待命状态。
你需要计算完成所有任务所需要的 最短时间 。
示例 1 输入tasks [A,A,A,B,B,B], n 2 输出8 解释A - B - (待命) - A - B - (待命) - A - B 在本示例中两个相同类型任务之间必须间隔长度为 n 2 的冷却时间而执行一个任务只需要一个单位时间所以中间出现了待命状态。 示例 2 输入tasks [A,A,A,B,B,B], n 0 输出6 解释在这种情况下任何大小为 6 的排列都可以满足要求因为 n 0 [A,A,A,B,B,B] [A,B,A,B,A,B] [B,B,B,A,A,A] ... 诸如此类 示例 3 输入tasks [A,A,A,A,A,A,B,C,D,E,F,G], n 2 输出16 解释一种可能的解决方案是 A - B - C - A - D - E - A - F - G - A - (待命) - (待命) - A - (待命) - (待命) - A 来源力扣LeetCode 链接https://leetcode.cn/problems/task-scheduler 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。
2.思路与代码
2.1 思路
1. 先计算出现次数最多的任务并把每个任务的出现次数统计放入Map集合中
2.遍历集合如果找到与最多任务相同数量的集合则计数器加一
3.输出
2.2 代码
代码如下示例
class Solution {public int leastInterval(char[] tasks, int n) {MapCharacter,Integer m new HashMap();//最多执行次数int max 0;//计算每个任务出现次数for(char c : tasks){//获得任务个数int res m.getOrDefault(c,0) 1;//更新任务数量m.put(c,res);max Math.max(max,res);}//具有最多执行次数的任务数量int maxCount 0;SetMap.EntryCharacter, Integer entrySet m.entrySet();for (Map.EntryCharacter, Integer entry : entrySet) {int value entry.getValue();if (value max) {maxCount;}}return Math.max((max - 1) * (n 1) maxCount, tasks.length);}
} 总结
提示这里对文章进行总结