题目:
代码:
class Solution {
public:
int numRabbits(vector<int>& answers) {
int map[1000]={0};
int ans=0;
for(int i=0;i<answers.size();i++){
if(answers[i]==0) ans++;
else map[answers[i]]+=1;
}
for(int i=1;i<1000;i++){
if(map[i]!=0) {
ans+=((map[i]-1)/(i+1)+1)*(i+1);
//ans+=map[i]+1;
}
}
return ans;
}
};
榜首代码:
class Solution {
public:
int numRabbits(vector<int>& answers) {
int numAnswers = static_cast<int>(answers.size());
if(numAnswers == 0)
return 0;
const int NumPossibleAnswers = 1000;
int answerToCount[NumPossibleAnswers] = {0};
for(const int& answer : answers)
++answerToCount[answer];
int minNumRabbits = 0;
for(int answer = 0; answer < NumPossibleAnswers; ++answer) {
if(answerToCount[answer] != 0) {
int numRabbitsColor = answer + 1;
int remainder = answerToCount[answer] % numRabbitsColor;
minNumRabbits +=
answerToCount[answer] - remainder + (remainder ? numRabbitsColor : 0);
}
}
return minNumRabbits;
}
};