第一天注冊部落格,第一天寫,欸嘿,哈哈哈
主要是分享一下Leetcode刷題哦,本人程式設計小白倘若有緣人看見了有不對的,請多多擔待,萬分感謝。
題目:
給定一個偶數長度的數組,其中不同的數字代表着不同種類的糖果,每一個數字代表一個糖果。
你需要把這些糖果平均分給一個弟弟和一個妹妹。傳回妹妹可以獲得的最大糖果的種類數。
示例 1:
輸入: candies = [1,1,2,2,3,3]
輸出: 3
解析: 一共有三種種類的糖果,每一種都有兩個。
最優配置設定方案:妹妹獲得[1,2,3],弟弟也獲得[1,2,3]。這樣使妹妹獲得糖果的種類數最多。
示例 2 :
輸入: candies = [1,1,2,3]
輸出: 2
解析: 妹妹獲得糖果[2,3],弟弟獲得糖果[1,1],妹妹有兩種不同的糖果,弟弟隻有一種。這樣使得妹妹可以獲得的糖果種類數最多。
注意:
數組的長度為[2, 10,000],并且确定為偶數。
數組中數字的大小在範圍[-100,000, 100,000]内。
思路:
1、給定的數組為偶數,設糖果的總數為x,妹妹分到的糖果最多且最多為x/2!
2、設給定數組中糖果的種類為y,倘若y>x/2 則輸出的結果為 x/2 ; 倘若y=x/2 則輸出的結果為 x/2 ; 倘若y<x/2 則輸出的結果y;
class Solution {
public int distributeCandies(int[] candyType) {
Set<Integer> set = new HashSet<>();
for(int candy:candyType){
set.add(candy);
}
return Math.min(set.size(),candyType.length/2);
}
}