數一下和自己報相同數字的兔子有多少個,如果超過了報的數x+1,那麼多出來的兔子是屬於另外的團體的。
class Solution {
public:
int numRabbits(vector<int>& answers) {
int ans = 0;
sort(answers.begin(),answers.end());
for(int i = 0;i<answers.size();i++)
{
int num = 1;
while(i+1 < answers.size() && answers[i] == answers[i+1])
{
num++;
i++;
}
if(answers[i] == 0) ans+=num;
else
{
if(num>=answers[i]+1)
{
int t = num/(answers[i]+1);
ans += t*(answers[i]+1);
num %= (answers[i]+1);
}
if(num) ans+=answers[i]+1;
}
}
return ans;
}
};