使用set自动去重的特性统计糖果的种类,然后返回种类和一半糖果数较小的那个即可
class Solution
{
public:
int distributeCandies(vector<int>& candies)
{
unordered_set<int> kinds;
for(int i=0;i<candies.size();i++)
kinds.insert(candies[i]);
int max=candies.size()/2;
if(kinds.size()>=max)
return max;
else
return kinds.size();
}
};
简化后的代码
class Solution
{
public:
int distributeCandies(vector<int>& candies)
{
unordered_set<int> kinds;
for(auto i:candies)
kinds.insert(i);
return min(candies.size()/2,kinds.size());
}
};