Leetcode575. 分糖果
思路一:遍历获得糖果的最大种类
使用集合存储糖果的种类,跟糖果个数一半比较,因为AliceAliceAlice固定获得一半的糖果,所以取max(candytype,n/2)max(candytype,n/2)max(candytype,n/2)
时间复杂度:O(n)O(n)O(n)
空间复杂度:O(K)O(K)O(K),K为糖果的数量
class Solution {
public:
int distributeCandies(vector<int>& candyType) {
unordered_set<int> S;
for (auto& t : candyType)
S.insert(t);
int n = candyType.size();
if (S.size() < n / 2) return S.size();
else return n / 2;
}
};
本文介绍了一种解决LeetCode575.分糖果问题的有效算法。通过遍历糖果类型并利用集合存储来确定Alice可以获得的最大糖果种类数量。时间复杂度为O(n),空间复杂度为O(K),K为糖果种类数。

被折叠的 条评论
为什么被折叠?



