题解 | #兑换零钱#

兑换零钱

https://www.nowcoder.com/practice/67b93e5d5b85442eb950b89c8b77bc72

import sys

# for line in sys.stdin:
#     a = line.split()
#     print(int(a[0]) + int(a[1]))
# t= input().split()
# n = t[0]
# aim = t[1]
n, aim = map(int, input().split())
arr = list(map(int, input().split()))
f = [sys.maxsize]*(aim+1)
f[0] = 0
for i in range(n):
    # for j in range(aim,arr[i]-1,-1):
    for j in range(arr[i],aim+1):
        f[j] = min(f[j], f[j-arr[i]]+1)
print(f[-1] if f[-1]!=sys.maxsize else -1)
# if f[-1] != sys.maxsize else -1)


# n, aim = map(int, input().split())
# v = list(map(int, input().split()))
# dp = [sys.maxsize] * (aim + 1)
# dp[0] = 0
# for i in range(n):
#     for j in range(aim+1):
#         if j >= v[i]:
#             dp[j] = min(dp[j], dp[j-v[i]] + 1)
# print(dp[-1] if dp[-1] != sys.maxsize else -1)

全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务