621. Task Scheduler CPU任务间隔分配器
[抄题]:
Given a char array representing tasks CPU need to do. It contains capital letters A to Z where different letters represent different tasks.Tasks could be done without original order. Each task could be done in one interval. For each interval, CPU could finish one task or just be idle.
However, there is a non-negative cooling interval n that means between two same tasks, there must be at least n intervals that CPU are doing different tasks or just be idle.
You need to return the least number of intervals the CPU will take to finish all the given tasks.
Example 1:
Input: tasks = ["A","A","A","B","B","B"], n = 2
Output: 8
Explanation: A -> B -> idle -> A -> B -> idle -> A -> B.
[暴力解法]:
时间分析:
空间分析:
[优化后]:
时间分析:
空间分析:
[奇葩输出条件]:
[奇葩corner case]:
[思维问题]:
知道不同字母之间互相制约,但是不知道抓主要矛盾:把字母频次由高到低统计
[一句话思路]:
字母种类少时套公式: 间隔数*(间隔长度+1自身)+ 补齐自身
 (max - 1) * (n + 1) + maxNum 
,种类多时直接用数组长
[输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入):
[画图]:

[一刷]:
[二刷]:
[三刷]:
[四刷]:
[五刷]:
[五分钟肉眼debug的结果]:
[总结]:
多个字母都会影响时,选择频率最高的主要影响
[复杂度]:Time complexity: O(n) Space complexity: O(n)
[英文数据结构或算法,为什么不用别的数据结构或算法]:
[算法思想:递归/分治/贪心]:
[关键模板化代码]:
[其他解法]:
[Follow Up]:
[LC给出的题目变变变]:
[代码风格] :
class Solution {
    public int leastInterval(char[] tasks, int n) {
        //cc
        //ini: char[26]
        int[] letters = new int[26];
        int i = 25;
        //store in char[26], sort, count frequency
        for (char c : tasks) {
            letters[c - 'A']++;
        }
        Arrays.sort(letters);
        while (i >= 0 && letters[i] == letters[25]) i--; 
        //return res
        return Math.max(tasks.length, (n + 1) * (letters[25] - 1) + 25 - i);
    }
}
621. Task Scheduler CPU任务间隔分配器的更多相关文章
- LeetCode 621. Task Scheduler
		
原题链接在这里:https://leetcode.com/problems/task-scheduler/description/ 题目: Given a char array representin ...
 - 【LeetCode】621. Task Scheduler 解题报告(Python & C++)
		
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 公式法 日期 题目地址:https://leetco ...
 - [LeetCode] 621. Task Scheduler 任务调度
		
Given a char array representing tasks CPU need to do. It contains capital letters A to Z where diffe ...
 - [leetcode]621. Task Scheduler任务调度
		
Given a char array representing tasks CPU need to do. It contains capital letters A to Z where diffe ...
 - [LeetCode]621. Task Scheduler 任务安排 题解
		
题目描述 给定一个char数组,代表CPU需要做的任务,包含A-Z,不用考虑顺序,每个任务能在1个单位完成.但是有规定一个非负整数n代表两个相同任务之间需要至少n个时间单位.球最少数量的时间单位完成所 ...
 - 621. Task Scheduler
		
https://www.cnblogs.com/grandyang/p/7098764.html 将个数出现最多的那个字符作为分隔的标准,一定是最小的.所以这个时候只需要计算还需要添加多少个idel就 ...
 - [leetcode] 621. Task Scheduler(medium)
		
原题 思路: 按频率最大的字母来分块,频率最大的字母个数-1为分成的块数,每一块个数为n+1 比如AAABBCE,n=2, 则分为A-A- +A AAABBBCCEE,n=2,则分为AB-AB- +A ...
 - 使用C#创建计划任务(How to create a Task Scheduler use C# )
		
本文主要讲解了如何使用C#来创建windows计划任务. 需求:在不定时间段运行多个后台程序(winfrom,wpf,console,等等)用于更新数据. 问题:为什么要使用计划任务,而不直接在程序 ...
 - Spring的任务调度@Scheduled注解——task:scheduler和task:executor的解析
		
原文地址: https://blog.csdn.net/yx0628/article/details/80873774 一个简单的Spring定时任务的 demo,全部代码见下载地址:https:// ...
 
随机推荐
- Error unmarshalling file:/opt/test/jboss/server/defalt/conf/bootstrap.xml
			
启动命令:#/usr/local/jboss/bin/run.sh -b 0.0.0.0 -c defalt 启动的defalt写错了,应该写default.
 - Zookeeper的shell操作
			
一.客户端连接服务器 zkCli.sh start 二.命令操作 进入到客户端操作行,键入help 查看zookeeper命令列表 常用命令 1) 查看节点列表:ls 路径 2) 创建节点:creat ...
 - 下ue节点
			
#!/bin/bash action=$1 port=$2 file="/home/operation/workspace/renderingengine/engine/services.t ...
 - jdk1.8新特性之lambda表达式
			
lambda表达式其实就是指一个匿名函数,应用最广泛的就是匿名内部类的简化.在jdk1.8之前,我们定义一个匿名内部类可能需要写一大坨代码,现在有了lambda之后,可以写的很简洁了.但不是说lamb ...
 - adb error: device offline
			
adb 调试一直报错 $ adb shell error: device offline 解决办法: $ adb kill-server $ adb start-server * daemon not ...
 - 解决近期linux下yum更新出现HTTP Error 404 NOT FOUND错误的办法
			
本文转载自:http://tech.lezi.com/archives/47 最近两天使用yum的163源,出现404错误 [root@localhost yum.repos.d]# yum make ...
 - JDK 8 - Method Reference 分析
			
Java SE 8 在 Java 语言层面上新增了 lambda expression 的功能,使得 Java 具备了函数式语言的能力 - 可以将函数作为方法参数传递,即 code as data. ...
 - java代码-----------逻辑运算符、 &&逻辑与  ||或
			
总结: && :两者均满足.是true ||: 两者中有一个满足就为true,不然就是false package com.sads; public class shou { publi ...
 - nginx基于TCP的反向代理
			
一.4层的负载均衡 Nginx Plus的商业授权版开始具有TCP负载均衡的功能.从Nginx 1.7.7版本开始加入的,现在变成了一个商业收费版本,想要试用,需要在官网申请.也就是说,Nginx除了 ...
 - 2017百度之星初赛B-1002(HDU-6115)
			
一.思路 这题“看似”比较难搞的一点是,一个节点上有多个办公室,这怎么求?其他的,求树中任意两个节点的距离(注意:没有最远或最最进这一说法,因为树上任意两个节点之间有且仅有一条路径.不然就有回路了,对 ...