题目分析:有偶数个糖果,哥哥和妹妹平分。数字代表糖果的种类,问妹妹最多有多少种类的糖果。首先妹妹最多只能有一半的糖果,如果糖果种类数少于糖果数的一半,那么妹妹能有全部种类的糖果,否则最多有一半糖果数量种类的糖果。即求一半数量的糖果和糖果种类哪个少。
代码:
int distributeCandies(vector<int>& candies) {
int num = candies.size()/2;
unordered_set<int> s;
for(auto x : candies)
s.insert(x);
return s.size()<num?s.size():num;
}
本文探讨了一个有趣的问题:如何在哥哥和妹妹间公平分配糖果,确保妹妹获得最多种类的糖果。通过算法分析,我们找到了解决方案,即比较妹妹可能拥有的糖果种类数与糖果总数的一半,取较小者作为答案。
409

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



