Example 1:
Input: candies = [1,1,2,2,3,3] Output: 3 Explanation: There are three different kinds of candies (1, 2 and 3), and two candies for each kind. Optimal distribution: The sister has candies [1,2,3] and the brother has candies [1,2,3], too. The sister has three different kinds of candies.
Example 2:
Input: candies = [1,1,2,3] Output: 2 Explanation: For example, the sister has candies [2,3] and the brother has candies [1,1]. The sister has two different kinds of candies, the brother has only one kind of candies.
Note:
- The length of the given array is in range [2, 10,000], and will be even.
- The number in given array is in range [-100,000, 100,000].
A:
class Solution { public: int distributeCandies(vector<int>& candies) { int n = candies.size(); unordered_set<int> S; for(auto k : candies) S.insert(k); int size = S.size(); return min(n/2, size); } };
Learned:
如果直接 return min(n/2, S.size()) ; 会因为后者是size_type 而导致 min 不能接受不同类型的参数
No comments:
Post a Comment