1、
2、
主要是考慮一共有多少不同的糖果m
以及糖果總數減去m也就是剩下的相同的糖果數量n
如果不一樣個數乘2小於總數 返回不一樣的
否則返回總數的一般
class Solution {
public:
int distributeCandies(vector<int>& candies) {
map<int,int> m;
for(int i=0;i<candies.size();i++)
{
m[candies[i]]++;
}
int size=m.size();////不一樣的個數
int seem=candies.size()-size;//多餘相同的
if(size*2<candies.size())
{
return size;
}
else return candies.size()/2;
}
};
黃子哥
class Solution {
public:
int distributeCandies(vector<int>& candies) {
map<int,int> p;
int size = candies.size();
int cnt = 0;
for(int e : candies){
if(p.find(e) != p.end()){
p.insert(make_pair(e,p[e] + 1));
}else{
p.insert(make_pair(e,1));
cnt ++;
}
}
return min(cnt,size/2);
}
};