1.タイトル
https://tianchi.aliyun.com/oj/118289365933779217/122647324212270016
説明:偶数の
長さの整数配列が与えられた場合、配列内の異なる番号は異なる種類のキャンディーを表し、各番号は種類のキャンディーを表します。
あなたはこれらのキャンディーを弟と妹の間で均等に分ける必要があります。姉妹が得ることができるキャンディーの最大量を返します。
指定された配列の長さの範囲は[2、10,000]であり、偶数です。
指定された配列の数値の範囲は[-100,000、100,000]です。
示例
输入: candies = [1,1,2,2,3,3]
输出: 3
解释:
有三种不同的糖果(1, 2 and 3), 每种糖果有两个。
最佳分法:妹妹拥有[1,2,3] ,弟弟也会拥有拥有[1,2,3]。
妹妹拥有3种不同的糖果。
2.問題解決
- タイプの数に応じて、重複排除を設定します。最大でも、アレイの長さの半分を超えることはできません。
class Solution {
public:
/**
* @param candies: a list of integers
* @return: return a integer
*/
int distributeCandies(vector<int> &candies) {
// write your code here
unordered_set<int> s;
for(auto c : candies)
s.insert(c);
return min(candies.size()/2, s.size());
}
};
私のCSDNブログアドレスhttps://michael.blog.csdn.net/
QRコードを長押しまたはスキャンして、私の公式アカウント(Michael Amin)をフォローし、一緒に来て、学び、一緒に進歩してください!