# Python动态规划解法,比较通用,题目类似找零钱问题 import sys n = int(sys.stdin.readline().strip()) def buy_nails(nails, target):     dp = [target + 1] * (target + 1)     # 初始化很重要     dp[0] = 0     for i in range(1, len(nails) + 1):         for j in range(1, target + 1):             if j >= nails[i - 1]:                 dp[j] = min(dp[j], dp[j - nails[i - 1]] + 1)     min_num = dp[-1]     if min_num < target + 1:         return min_num     else:         return -1 nails = [4, 9] dp = buy_nails(nails, n) print(dp)
点赞 评论

相关推荐

牛客83700679...:简历抄别人的,然后再投,有反馈就是简历不行,没反馈就是学历不行,多投多改只要技术不差机会总会有的
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务