2952. 需要添加的硬币的最小数量

需要添加的硬币的最小数量

解法一: 数学, 贪心

go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
func minimumAddedCoins(coins []int, target int) int {
sort.Ints(coins)
n := len(coins)
ans := 0
s := 1
i := 0
for s <= target {
if i < n && coins[i] <= s {
s += coins[i]
i++
} else {
ans++
s <<= 1
}
}
return ans
}
作者

wuhunyu

发布于

2024-03-30

更新于

2025-01-15

许可协议