LeetCode 575 分糖果[set] HERODING的LeetCode之路

Posted HERODING23

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 575 分糖果[set] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。


解题思路:
用贪心的方法,尽可能让妹妹获得最多糖果数,也就是尽量不重复,那么就很简单了,直接用set获取所有的种类数,返回set的大小和糖果数一半中的最小值,代码如下:

class Solution {
public:
    int distributeCandies(vector<int>& candyType) {
        int type = 0, len = candyType.size();
        set<int> res;
        for(int i = 0; i < len; i ++) {
            res.insert(candyType[i]);
        }
        type = res.size();
        return type >= len / 2 ? len / 2 : type;
    }
};

没想到官方题解更不讲武德,代码更加简洁,如下:

class Solution {
public:
    int distributeCandies(vector<int>& candyType) {
        return min(unordered_set<int>(candyType.begin(), candyType.end()).size(), candyType.size() / 2);
    }
};

以上是关于LeetCode 575 分糖果[set] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章

leetcode打卡——去重之575. 分糖果

LeetCode 575. 分糖果

LeetCode 575. 分糖果 / 237. 删除链表中的节点 / 407. 接雨水 II

575. 分糖果思维

解题报告Leecode. 575. 分糖果——Leecode每日一题系列

LeetCode 575. Distribute Candies (发糖果)