当前位置: 首页 > article >正文

Leetcode 621. 任务调度器

在这里插入图片描述

注意的点:

1、这道题是一个贪心算法,解法主要是按照排列组合里的插入方法去思考。
2、思路:先统计最大频率出现的元素用来做分隔板,然后再去考虑插入的问题,与排列组合的思想一致。
在这里插入图片描述

  • (n+1)表示空余位置和隔板位置差一位 (most_frequence - 1)表示间隔数比总元素数差一位
  • 加most_frequence_repeat表示计算最大元素隔板后面还跟着多少的尾巴。
  • 与数组长度求最大值含义是在满足最大元素的需求的基础上,其他元素随意往里插入就行,不会引起空白位置的增加。
class Solution:
    def leastInterval(self, tasks: List[str], n: int) -> int:
        from collections import Counter
        c = Counter(tasks).most_common() # ('A', 3)
        most_frequence = c[0][1]
        most_frequence_repeat = 0
        for each_tuple in c:
            if each_tuple[1] == most_frequence: most_frequence_repeat += 1
        return max(len(tasks), (n + 1) * (most_frequence - 1) + most_frequence_repeat)

http://www.kler.cn/a/286215.html

相关文章:

  • three.js+WebGL踩坑经验合集(4.1):THREE.Line2的射线检测问题(注意本篇说的是Line2,同样也不是阈值方面的问题)
  • Oracle Primavera P6 最新版 v24.12 更新 2/2
  • http和https的区别?
  • FastExcel使用详解
  • Maven的单元测试
  • [Java]泛型(一)泛型类
  • Spring Cloud Gateway的使用
  • 高防服务器中的流量清洗是什么意思?
  • 【电机控制】有感FOC之霍尔自学习
  • 学习周报-2024.8.31
  • 基于 Redis 的 HyperLogLog 实现了 UV 的统计
  • 浅谈-Unity内存管理
  • Python 全栈系列265 使用ORM、Kafka、Apscheduler实现任务的并发处理
  • Jupyter如何使用Anaconda的虚拟环境
  • CSS 的image-rendering属性与图像的渲染
  • [软件安装]STM32CubeMX
  • 机器学习 第7章 贝叶斯分类器
  • MySQL——事务与存储过程(二)存储过程的创建(1)创建存储过程
  • Pictory AI——博客、文章等内容转换为视频,自动适配动态画面和字幕
  • 分类预测|基于CNN提取特征使用支持向量机作为分类器进行分类预测CNN-SVM(SVM自动寻优c,g超参数)CNN和CNN-SVM
  • leetcode 902. Numbers At Most N Given Digit Set
  • 网络技术基础
  • “北京地铁系统中人脸识别技术的安全与效率问题研究”
  • 五、工程化开发和脚手架Vue CLI
  • 网易易盾携手雷斧科技,打造公平竞技环境
  • OpenCV绘图函数(1)绘制带箭头的直线函数arrowedLine()的使用