Leecode Hot100 刷题笔记本-调度(C++版)

86 阅读1分钟
  • 621. 任务调度器

  • 利用数组, 找到执行任务最多的任务,次数记为N
  • 最后一个桶的个数是cnt
  • 公署是(N-1)*(n+1)+cnt

621. 任务调度器

Screen Shot 2023-08-07 at 3.50.39 PM.png

int leastInterval(vector<char>& tasks, int n) {
        int len=tasks.size();
        vector<int> vec(26);
        for(char c:tasks) ++vec[c-'A'];
        sort(vec.begin(),vec.end(),[](int& x,int&y){return x>y;});
        int cnt=1;
        while(cnt<vec.size()&&vec[cnt]==vec[0]) cnt++;
        return max(len,cnt+(n+1)*(vec[0]-1) );
    }
  • 时间复杂度:O(nlogn)
  • 空间复杂度O(1)