2244. 完成所有任务需要的最少轮数
题目链接:2244. 完成所有任务需要的最少轮数
代码如下:
class Solution
{
public:
int minimumRounds(vector<int>& tasks)
{
unordered_map<int,int> um;
for(int i=0;i<tasks.size();i++)//统计各个任务的数量
{
um[tasks[i]]++;
}
for(auto it=um.begin();it!=um.end();it++)//看看各个任务是否不满足条件
{
if(it->second<2) return -1;
}
int res=0;
for(auto it=um.begin();it!=um.end();it++)
{
while(it->second>0)//统计完成这些人物的轮数
{
if(it->second>=3)//满足能先完成3个,就完成3个
{
it->second-=3;
}
else //否者就只剩下不到3个了
{
it->second=0;
}
res++;//记录结果
}
}
return res;
}
};