Leetcode Note: Go - Arranging Coins
Arranging Coins - LeetCode
https://leetcode.com/problems/arranging-coins/
- Go 言語で取り組んだメモ
所感
- int でコインの枚数 n が渡されるので、これらで starcase を作りたい
- starcase は k rows で構成されて i 行目には i 枚のコインが存在する
- starcase の最後の行は未完成になることもある
- コイン n 枚で完成させることができた行数を int で return する
回答
Arranging Coins - LeetCode
https://leetcode.com/problems/arranging-coins/solution/
func arrangeCoins(n int) int {
left, right := 0, n
k, curr := 0, 0
for left <= right {
k = left + (right - left) / 2
curr = k * (k + 1) / 2
if curr == n {
return k
}
if n < curr {
right = k - 1
} else {
left = k + 1
}
}
return right
}
- バイナリサーチでの実装