原题:
力扣链接: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;
    }
};力扣结果展示:

                









