Leetcode575. 分糖果
思路一:遍历获得糖果的最大种类
使用集合存储糖果的种类,跟糖果个数一半比较,因为 A l i c e Alice Alice固定获得一半的糖果,所以取 m a x ( c a n d y t y p e , 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;
}
};