【快乐水题】575. 分糖果
原创
©著作权归作者所有:来自51CTO博客作者wx63dcc0114075e的原创作品,请联系作者获取转载授权,否则将追究法律责任
原题:
力扣链接:575. 分糖果
题目简述:
Alice 有 n 枚糖,其中第 i 枚糖的类型为 candyType[i] 。Alice 注意到她的体重正在增长,所以前去拜访了一位医生。
医生建议 Alice 要少摄入糖分,只吃掉她所有糖的 n / 2 即可(n 是一个偶数)。Alice 非常喜欢这些糖,她想要在遵循医生建议的情况下,尽可能吃到最多不同种类的糖。
给你一个长度为 n 的整数数组 candyType ,返回: Alice 在仅吃掉 n / 2 枚糖的情况下,可以吃到糖的最多种类数。
解题思路
1.遍历输入的糖果数组,把类型插入哈希表;
2.n/2与总类型数ncandyType比较,如果n/2大,则输出ncandyTyp,否则输出n/2;
3.over;
C++代码:
class Solution {
public:
int distributeCandies(vector<int>& candyType) {
int n = candyType.size();
unordered_map<int, int> umap;
int i = 0;
for(i = 0;i < n; i++)
{
umap[candyType[i]];
}
int ncandyType = umap.size();
if(n/2 > ncandyType)
{
return ncandyType;
}
else
{
return n/2;
}
return -1;
}
};
力扣结果展示: