码迷,mamicode.com
首页 > 其他好文 > 详细

Leetcode 621之任务调度器

时间:2020-09-16 12:28:41      阅读:34      评论:0      收藏:0      [点我收藏+]

标签:esc   task   inter   src   title   char   solution   for   ges   


title: Leetcode 621 之任务调度器
date: 2020-9-2 22:47:12
categories:
LeetCode


技术图片

这里参考popopop的解法,主要的是要记住下面这张图

技术图片

流程:

  • 先使用一个int[] 数组记录一下各个任务的出现次数;
  • 然后遍历这个数组,找到出现次数最多的那个任务,同时要统计有多少个这样的任务;
  • 然后使用公式, res=(max-1)*(n+1)+maxCount;
  • 最后与数组长度进行对比,返回最大的那个;

代码如下:

public int leastInterval(char[] tasks, int n) {
    if(tasks==null || tasks.length==0 || n<0){
        return 0;
    }
    
    //统计
    int[] map=new int[26];
    
    for(char ch:tasks){
        map[ch-‘A‘]++;
    }
    
    int max=0;
    //最起码有一个
    int count=1;
    
    for(int i:map){
        if(i==0){
            continue;
        }else if(max<i){
            //开始重置
            max=i;
            count=1;
        }else if(max==i){
            count++;
        }
    }
    
    int space=(max-1)*(n+1)+count;
    
    return Math.max(space,tasks.length);
}

Leetcode 621之任务调度器

标签:esc   task   inter   src   title   char   solution   for   ges   

原文地址:https://www.cnblogs.com/reecelin/p/13604943.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!