题解 | #兑换零钱(一)#dp数组解法
兑换零钱(一)
https://www.nowcoder.com/practice/3911a20b3f8743058214ceaa099eeb45
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 最少货币数
# @param arr int整型一维数组 the array
# @param aim int整型 the target
# @return int整型
#dp数组解法
class Solution:
def minMoney(self , arr: List[int], aim: int) -> int:
#dp数组的定义:当目标金额为 i 时,至少需要 dp[i] 枚硬币凑出。
dp=[aim+1]*(aim+1)
dp[0]=0
for i in range(len(dp)):
for coin in arr:
if i<coin:
continue
dp[i]=min(dp[i],dp[i-coin]+1)
if dp[aim]==aim+1:
return -1
return dp[aim]
# write code here
OPPO公司福利 1195人发布