数一下和自己报相同数字的兔子有多少个,如果超过了报的数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;
}
};