Leetcode Note: Go - Distribute Candies
Distribute Candies - LeetCode
https://leetcode.com/problems/distribute-candies/
- Go 言語で取り組んだメモ
所感
- int 配列 candyType が渡されるので、食べられるキャンディー種類の最大数を int で return する
- キャンディーの数 n / 2 だけ食べれる
- n は常に偶数であることを保証
- できるだけ様々なキャンディーを食べれるように振る舞う
回答
Distribute Candies - LeetCode
https://leetcode.com/problems/distribute-candies/solution/
func distributeCandies(candyType []int) int {
res := 0
eatable := len(candyType) / 2
m := make(map[int]bool)
for _, value := range candyType {
candy := value
if _, ok := m[candy]; !ok {
m[candy] = true
res++
if res == eatable {
return eatable
}
}
}
return res
}
- hash map 使って candyType が既出か判定
- あとは食べられる最大値にリーチするかチェックすれば OK