【精】LintCode领扣算法问题答案:945. 任务计划
发布日期:2021-06-30 17:13:37
浏览次数:2
分类:技术文章
本文共 1426 字,大约阅读时间需要 4 分钟。
945. 任务计划:
描述
给定一个字符串,表示CPU需要执行的任务。 这个字符串由大写字母A到Z构成,不同的字母代表不同的任务。完成任务不需要按照给定的顺序。 每项任务都可以在一个单位时间内被完成。 在每个单位时间,CPU可以选择完成一个任务或是不工作。
但是,题目会给定一个非负的冷却时间“n”,表示在执行两个“相同的任务”之间,必须至少有n个单位时间,此时CPU不能执行该任务,只能执行其他任务或者不工作。
您需要返回CPU完成所有给定任务所需的最少单位时间数。
- 任务数量的范围为 [1, 10000].
- 整数 n 的范围为 [0, 100].
样例 1
输入: tasks = ['A','A','A','B','B','B'], n = 2输出: 8解释: A -> B -> idle -> A -> B -> idle -> A -> B.
样例 2
输入: tasks = ['A','A','A','B','B','B'], n = 1输出: 6解释: A -> B -> A -> B -> A -> B.
文章目录
题解
public class Solution { /** * @param tasks: the given char array representing tasks CPU need to do * @param n: the non-negative cooling interval * @return: the least number of intervals the CPU will take to finish all the given tasks */ public int leastInterval(char[] tasks, int n) { // write your code here // 计数 int[] ch = new int[26]; for (char c : tasks) { ch[c - 'A']++; } // 排序 Arrays.sort(ch); // 统计次数最多的任务有几种(会在最后一个执行周期执行,且不需要再进行冷却) int i = 24; while (i >= 0 && ch[i] == ch[25]) { i--; } // ch[25] - 1因为最后一个周期和n没关系,不需要冷却 // 当任务数量都比较小,任务种类比较多,这时候不需要冷却,因为并不会遇到一个周期内各种任务执行完,还不够n,所以这时候总的执行时间片就是任务总数 return Math.max(tasks.length, (ch[25] - 1) * (n + 1) + (25 - i)); }}
最后说两句
非常感谢你阅读本文章,如果你觉得本文对你有所帮助,请留下你的足迹,点个赞,留个言,多谢~
作者水平有限,如果文章内容有不准确的地方,请指正。
希望小伙伴们都能每天进步一点点。
声明
本文由博客原创,转载请注明来源,谢谢~
转载地址:https://le-yi.blog.csdn.net/article/details/114828840 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年04月30日 10时24分42秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
反向传播&梯度下降 的直观理解程序(numpy)
2019-04-30
ACM 2017 南宁区域赛 Rake it in(对抗搜索)
2019-04-30
CodeForces - 931B World Cup (思维 模拟)
2019-04-30
CodeForces - 996D Suit and Tie (暴力)
2019-04-30
ACM 2017 香港区域赛 E - Base Station Sites(二分)
2019-04-30
ACM 2018 青岛区域赛 J-Books (模拟)
2019-04-30
ACM 2016 沈阳区域赛 E - Counting Cliques (dfs)
2019-04-30
ACM 2017 北京区域赛 J-Pangu and Stones(区间dp)
2019-04-30
HDU - 5643 King's Game (约瑟夫环变式)
2019-04-30
UVA - 1452 Jump (约瑟夫环变式)
2019-04-30
POJ - 3517 And Then There Was One (约瑟夫环变式)
2019-04-30
HDU - 2068 RPG的错排 (错排+组合数)
2019-04-30
CodeForces 591C Median Smoothing(思维 模拟)
2019-04-30
升级yosemite后java出错的解决
2019-04-30
开发人员与测试人员, 道不同也相谋
2019-04-30
Thirdparty之CrashRptProbe, 查询程序奔溃的利器
2019-04-30
基于VTK实现面绘制(SR)和体绘制(VR)的基本代码
2019-04-30