一:题目
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/8cbd518a7661e17f214af5c4e90818fe.png)
二:上码
class Solution {
public:
int minimumRounds(vector<int>& tasks) {
unordered_map<int,int>m;
unordered_map<int,int>::iterator mt;
int ans = 0;
for (int i = 0; i < tasks.size(); i++) {
m[tasks[i]]++;
}
for (mt = m.begin(); mt != m.end(); mt++) {
int nums = mt->second;
if (nums == 1) return -1;
else if (nums == 2) ans++;
else if (nums%3 == 0) ans += nums/3;
else ans += nums/3+1;
}
return ans;
}
};
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/fbd7e2cb837947461fd904e14d80424d.png)
上超时码(我在限时时间内只写出了超时码)
class Solution {
public:
int minimumRounds(vector<int>& tasks) {
unordered_map<int,int>m;
unordered_map<int,int>::iterator mt;
int ans = 0;
for (int i = 0; i < tasks.size(); i++) {
m[tasks[i]]++;
}
for (mt = m.begin(); mt != m.end(); mt++) {
int nums = mt->second;
if (nums%2 == 0 || nums%3 == 0 || nums%2 == 3 || nums%3 == 2 || (nums-3) % 2 == 0) {
while (nums != 0) {
if (nums%2 == 0 && nums%3 == 0) {
nums -= 3;
ans++;
} else if (nums%3 == 2) {
nums -= 3;
ans++;
} else if (nums%2 == 0) {
nums -= 2;
ans++;
} else if (nums%3 == 1 && nums != 4) {
nums -= 3;
nums++;
}
}
} else {
return -1;
}
}
return ans;
}
};