5.14 力扣每日一题 贪心

2244. 完成所有任务需要的最少轮数

cpp 复制代码
class Solution {
public:
    int minimumRounds(vector<int>& tasks) {
        int n=tasks.size(),sum=0;
        sort(tasks.begin(),tasks.end()); //排序就不用哈希表
        int a;
        for(int i=0;i<n;){
            int ct=0;
            a=tasks[i];
            while(i<n&&tasks[i]==a){
                i++;ct++;
            }
            if(ct==1)return -1;
            switch(ct%3){
                case 0:sum+=ct/3;break;
                case 1:sum+=ct/3+1;break;
                case 2:sum+=ct/3+1;break;
            }
        }
        return sum;
    }
};
相关推荐
UIU11423 分钟前
P1003 [NOIP 2011 提高组] 铺地毯
数据结构·c++·算法
爱读书的小胖27 分钟前
LeetCode 88. 合并两个有序数组 C 解题分析
c语言·数据结构·算法
垆边人似月.2 小时前
删边使每个连通块权值和为 target
算法·深度优先·图论
xxwl5852 小时前
区域赛算法模版第四章---数据结构
数据结构·c++·算法
xxwl5852 小时前
第六章---计算几何
笔记·学习·算法
Logic1013 小时前
C语言/数据结构二维数组题解:找出行列O个数均为偶数的格子——奇偶性预处理+二次遍历
c语言·数据结构·算法·二维数组·时间复杂度·动态内存分配·奇偶性
程序猿阿森3 小时前
【机器学习实战】朴素贝叶斯算法详解:从概率基础到商品评论情感分析
算法·机器学习·概率论
xxwl5854 小时前
区域赛算法模版第五章---数学与数论
c++·笔记·算法
看浪的路人4 小时前
第6讲:Agent 安全体系——Prompt 注入防御、工具调用审计与输出合规
人工智能·算法