思路 :使用哈希表,将兔子的回答+1放入key,计算有相同回答的兔子数量并放入value。 最后遍历哈希表,如果某一组value % key > 0说明有兔子没有回答,应按最小值计入。
class Solution {
public:
int numRabbits(vector<int>& answers) {
int n = answers.size();
std::unordered_map<int, int> groups;
for (int i = 0; i < n; i++) {
int sameColor = answers[i] + 1;
groups[sameColor]++;
}
int out = 0;
for (auto& p : groups) {
int key = p.first;
int value = p.second;
if (value % key == 0) {
out += key * (value / key);
} else {
out += key * (value / key + 1);
}
}
return out;
}
};
365

被折叠的 条评论
为什么被折叠?



