我们可以使用一个数据结构,那个数据结构可以消除重复元素,这样我们就得到了所有糖果的种类数即那个数据结构的size
。最后只要和n / 2
一比,就可以得到答案了。这个数据结构就是unordered_set<int>
class Solution {
public:
int distributeCandies(vector<int>& candyType) {
unordered_set<int> type(candyType.begin(), candyType.end());
int candies = candyType.size() / 2;
int types = type.size();
return min(candies, types);
}
};
- 时间复杂度:$O(n)$,
n
为candyType的size
- 空间复杂度:$O(n)$,
n
为candyType的size