给定一个用字符数组表示的 CPU 需要执行的任务列表。其中包含使用大写的 A - Z 字母表示的26 种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。CPU 在任何一个单位时间内都可以执行一个任务,或者在待命状态。

然而,两个相同种类的任务之间必须有长度为 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。

你需要计算完成所有任务所需要的最短时间。

示例 1:

输入: tasks = [“A”,“A”,“A”,“B”,“B”,“B”], n = 2
输出: 8
执行顺序: A -> B -> (待命) -> A -> B -> (待命) -> A -> B.

注:

  • 任务的总个数为 [1, 10000]。
  • n 的取值范围为 [0, 100]。
class Solution {public:int leastInterval(vector<char>& tasks, int n) {if(n==0)return tasks.size();vector<int> dp(26,0);for(int i=0;i<tasks.size();i++)dp[int(tasks[i]-'A')]++;sort(dp.begin(),dp.end());int time = 0;while(dp[25]>0){int k = 0;while(k<=n){if(dp[25]==0)break;if (k < 26 && dp[25 - k] > 0)dp[25-k]--;time++;k++;}sort(dp.begin(),dp.end());}return time;}
};

leetcode - 621. 任务调度器相关推荐

  1. LeetCode 621. 任务调度器(贪心)

    1. 题目 给定一个用字符数组表示的 CPU 需要执行的任务列表.其中包含使用大写的 A - Z 字母表示的26 种不同种类的任务.任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完 ...

  2. Leetcode 621. 任务调度器 解题思路及C++实现

    方法一:贪心算法 解题思路: 使用贪心的思想,先把出现最多的任务分配了(即每隔n个单位时间分配一个任务),然后再把其它任务填上.如下图 所以需要先计算各任务出现的次数,找到出现最多的任务,程序中使用m ...

  3. leetcode 621. 任务调度器(贪心算法)

    给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表.其中每个字母表示一种不同种类的任务.任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完.在任何一个单位时间,CPU ...

  4. leetcode 621. Task Scheduler | 621. 任务调度器(Java)

    题目 https://leetcode.com/problems/task-scheduler/ 题解 似懂非懂的答案,https://leetcode-cn.com/problems/task-sc ...

  5. 【LeetCode笔记】621. 任务调度器(Java、桶)

    文章目录 题目描述 代码 && 思路 1. 直白的 ac 做法 O(n).O(n) 2. 桶排思想的做法 O(n).O(n) 二刷 打卡第十六天- 题目描述 有点阅读题的意思,可以结合 ...

  6. LeetCode 热题 HOT 100 -------31. 下一个排列(数组,数学问题)128. 最长连续序列(数组) 11. 盛最多水的容器(数组) 621. 任务调度器 (数组)

    dsadas /**思路:找下一个排列,并且尽可能小,所以我们应该找一序列中从左边开始的"较小值"与"较大值"交换,但是为了尽可能小应该满足: 1." ...

  7. 621. 任务调度器

    文章目录 1.题目 2.代码 1.题目 题目要求 eg: 输入: tasks = ["A","A","A","B",&q ...

  8. LeetCode第 621 题:任务调度器 (C++)

    621. 任务调度器 - 力扣(LeetCode) 做法很多,这位同学的解释是最通俗易懂的:[任务调度器]C++ 桶子_配图理解 class Solution { public:int leastIn ...

  9. LeetCode-621. 任务调度器

    621. 任务调度器 给定一个用字符数组表示的 CPU 需要执行的任务列表.其中包含使用大写的 A - Z 字母表示的26 种不同种类的任务.任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时 ...

最新文章

  1. python PyQt5 QColor()函数
  2. 启明云端分享|A133核心板SOM1309在喉镜方面的应用
  3. js与c语言效率_JavaScript比c语言的性能差了多少?
  4. (转)百度Map API
  5. 问题-Delphi 中使用TStringList后,报out of memory 的解决方法
  6. 【路径规划】基于matlab A_star算法多机器人路径规划【含Matlab源码 1251期】
  7. git ssh密钥生成与配置
  8. Python第四课:input()函数
  9. SVN Eclipse插件Subclipse安装和配置
  10. 这些样式表,你都用过么?
  11. 华硕 梅林系统 wan FTP 端口转发
  12. 自动化测试遇到的难点_谈谈我在自动化测试中遇到的坑
  13. WhatsApp的下载与更新
  14. SegmentFault 技术周刊 Vol.30 - 学习 Python 来做一些神奇好玩的事情吧
  15. 解决elementui的el-dialog 对话框 屏幕放大缩小不变形问题
  16. PoE介绍(网线供电)和POE交换机常见连接架构
  17. 又一年没有中国队的世界杯,你还会熬夜打call吗?网友的回答亮了
  18. 中软国际路线图:先“稳”住大客户,再来谈新增量
  19. 交换机和路由器的区别?
  20. 实时去除浏览器缓存的文件,音频,视频,图片等

热门文章

  1. linux中的开机启动
  2. Nginx高并发系统内核优化
  3. Python模块学习 - 用tinify模块压缩和优化图片
  4. 《Spring技术内幕(第2版)》PDF 国内经典分析spring源代码
  5. 服务监控 Spring Boot Actuator 介绍
  6. springboot logback自定义配置文件路径
  7. 【JAVA 第三章 流程控制语句】课后习题 计算两个日期之间的天数
  8. 【Java】输出10-1000中间既能被3整除又能被7整除的数
  9. 【Python】政府工作报告词云
  10. C#设计模式之18-备忘录模式