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. 分糖果 / 237. 删除链表中的节点 / 407. 接雨水 II