原题地址:575. Distribute Candies。
解法
int distributeCandies(vector<int>& candies) {
int len = candies.size();
unordered_set<int> kind;
int kindNum = 0;
for (int i = 0; i < len; i++) {
kind.insert(candies[i]);
}
kindNum = kind.size();
if (kindNum >= len / 2) {
return len / 2;
}
return kindNum;
}
简单写法
int distributeCandies2(vector<int>& candies) {
int len = candies.size();
int kindNum = 0;
unordered_set<int> kind(candies.begin(), candies.end());
kindNum = kind.size();
if (kindNum >= len / 2) {
return len / 2;
}
return kindNum;
}
参考:
[C++] Clean Code - 2 Solutions: Set and Sort
最后更新于2017年6月19日。