题目:https://leetcode-cn.com/problems/task-scheduler/description/
给定一个用字符数组表示的 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]。 (这个边界点1??不就是1个单位时间。)
- n 的取值范围为 [0, 100]。 (这个边界点0???要谨慎了 0不就是直接执行一个又一个,长度也就是队列长度。)
还真不会做,看了网上的各种答案,才领悟了。
思路:先排重复最多的,例如这题A - - A -- A -- (- 为间隔时间,间隔多少取决于n),然后其他元素依次插空 ,A B - A B - A B 。除去最后的A B 模块 , 前面的模块总执行时间 (m-1)*(n+1) , m为重复出现最多的次数 。最后模块肯定有A自己一个,至于A后面填充什么,就看哪些元素种类个数和A一样多 。最后不可能有待定了。
class Solution:
def leastInterval(self, tasks, n):
"""
:type tasks: List[str]
:type n: int
:rtype: int
"""
length = len(tasks)
if length==1:
return 1
output = [0]*26
for i in tasks:
output[ord(i)-ord('A')] = output[ord(i)-ord('A')]+1 count = 0
len_o = 0
max_o = max(output)
for i in output:
if i==max_o:
count = count+1 return max(length,(max_o-1)*(n+1)+count)
LeetCode 任务调度器-Python3<八>的更多相关文章
-
Java实现 LeetCode 621 任务调度器(暴力大法)
621. 任务调度器 给定一个用字符数组表示的 CPU 需要执行的任务列表.其中包含使用大写的 A - Z 字母表示的26 种不同种类的任务.任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时 ...
-
TaskScheduler一个.NET版任务调度器
TaskScheduler是一个.net版的任务调度器.概念少,简单易用. 支持SimpleTrigger触发器,指定固定时间间隔和执行次数: 支持CronTrigger触发器,用强大的Cron表达式 ...
-
21 BasicTaskScheduler基本任务调度器(一)——Live555源码阅读(一)任务调度相关类
21_BasicTaskScheduler基本任务调度器(一)——Live555源码阅读(一)任务调度相关类 BasicTaskScheduler基本任务调度器 BasicTaskScheduler基 ...
-
18 TaskScheduler任务调度器抽象基类——Live555源码阅读(一)任务调度相关类
这是Live555源码阅读的第二部分,包括了任务调度相关的三个类.任务调度是Live555源码中很重要的部分. 本文由乌合之众 lym瞎编,欢迎转载 http://www.cnblogs.com/ol ...
-
azkaben任务调度器
azkaban学习笔记总结 01.工作流调度器azkaban 1. 任务调度概述 一个完整的数据分析系统通常都是由大量任务单元组成: shell脚本程序,java程序,mapreduce程序.hive ...
-
SpringBoot2 task scheduler 定时任务调度器四种方式
github:https://github.com/chenyingjun/springboot2-task 使用@EnableScheduling方式 @Component @Configurabl ...
-
Spark源码剖析 - SparkContext的初始化(五)_创建任务调度器TaskScheduler
5. 创建任务调度器TaskScheduler TaskScheduler也是SparkContext的重要组成部分,负责任务的提交,并且请求集群管理器对任务调度.TaskScheduler也可以看作 ...
-
C# 可指定并行度任务调度器
可指定并行度的任务调度器 https://social.msdn.microsoft.com/Forums/zh-CN/b02ba3b4-539b-46b7-af6b-a5ca3a61a309/tas ...
-
springMVC + quartz实现定时器(任务调度器)
首先我们要知道任务调度器(定时器)有几种,这边我会写三种 第一种是基于JDK的本身的一个定时器(优点:简单,缺点:满足不了复杂的需求) package com.timer1; import java. ...
随机推荐
-
返回顶部demo
<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" ...
-
jquery 平滑锚
setTimeout('$("html,body").animate({ scrollTop: $(".title").offset().top }, 1000 ...
-
thinkphp的CURD操作
增 //a字段是主键 $data['b'] = 'bbb'; $data['c'] = 'c'; $new_id = M('test')->data($data)->add(); //ec ...
-
(转)jQuery禁止右键菜单,全选
本文转载自:http://www.cnblogs.com/lucker/archive/2012/09/21/2696464.html $("body").bind("c ...
-
HDU 1087 Super Jumping! Jumping! Jumping!(最长上升子序列,dp)
以下引用自:http://www.cnblogs.com/Lyush/archive/2011/08/31/2161314.html沐阳 该题可以算是一道经典的DP题了,题中数据是这样的.以 3 1 ...
-
Java中面向字符的输入流
Java中面向字符的输入流 2016-12-04 Java程序员联盟 Java程序员联盟 Java程序员联盟 微信号 javalm 功能介绍 莫道君行早,更有早行人 全心敲代码,天道自酬勤 字符流是针 ...
-
阿里巴巴Java规约插件试用
阿里Java开发规约Eclipse插件介绍 阿里巴巴集团配合<阿里巴巴Java开发手册>PDF终极版开发的IDE插件,目前包括IDEA插件.Eclipse插件. 安装 检查环境 插件要求: ...
-
06 入门 - Web服务器
目录索引:<ASP.NET MVC 5 高级编程>学习笔记 开发和调试ASP.NET MVC程序,需要Web服务器的支持. Visual Studio 2012+开发环境提供了两种Web服 ...
-
一次linux启动故障记录
故障背景: 在2.6.32升级内核之后,出现多台设备启动失败,失败的全部都是ssd作为系统盘的机器,bios引导之后,屏幕就黑了,没有打印. 一开是以为是mbr损坏了,所以将启动盘挂载到其他服务器上, ...
-
pta7-19打印学生选课清单(模拟)
题目链接:https://pintia.cn/problem-sets/1101307589335527424/problems/1101314114875633664 题意:输入n个学生,k門课程, ...