Advertisement

LeetCode每日一题----最少轮数:完成所有任务

阅读量:

LeetCode 每日一题 ---- 【2244.完成所有任务需要的最少轮数】

  • 2244.达成所有任务所需的最少轮次数
      • 途径:采用哈希表结合贪心算法

任务完成最少轮数计算

哈希表与贪心算法结合应用

通过哈希表结构对各个等级的出现频次进行统计
在处理过程中,每次优先使用3个单位,当总数对3取余后,余数可能为0、1或2
针对不同的余数情况分别采取相应的处理方式
当余数为0时,表示所有数据均可被3整除,即能够完全按照每组3个的方式处理完毕
当余数为1时,意味着最终剩余一个单位,在这种情况下,可将其视为最后存在4个单位的情况,进而转换为以每组2个的方式进行处理,此时最终结果需额外加1
当余数为2时,则只需再进行一次每组2个的处理即可完成

复制代码
    class Solution {
    public int minimumRounds(int[] tasks) {
        HashMap<Integer, Integer> hm = new HashMap<>();
        int len = tasks.length;
        for (int i = 0; i < len; i ++ ) {
            hm.put(tasks[i], hm.getOrDefa

全部评论 (0)

还没有任何评论哟~