(每日一练64068)题目名称:零钱兑换

文盲老顾
WEB应用领新星创作者
博客专家认证
2023-06-15 06:43:15

给定数组arr,arr中所有的值都为正整数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个aim,代表要找的钱数,求组成aim的最少货币数。 如果无解,请返回-1. 数据范围:数组大小满足 0 <= n <=10000 , 数组中每个数字都满足 0 < val <=10000,0 <= aim <=100000 要求:时间复杂度 O(n×aim) ,空间复杂度 O(aim)。

嗯,leetcode 322 题一模一样,可以自行到力扣查看相关题解。输入内容,用 py 处理还好,用c++就痛苦了。

arr,m = eval(input())
dp = [float('inf')] * (m + 1)
dp[0] = 0
for c in arr:
    for p in range(c,m + 1):
        dp[p] = min(dp[p],dp[p - c] + 1)
print(dp[-1] if dp[-1] != float('inf') else -1)
...全文
79 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

321

社区成员

发帖
与我相关
我的任务
社区描述
主要用于技术交流,包括但不限于 .net,mssql,js,css,python,算法,运维。也可以晒最新技术,美图,运动等。最后,如果有问题,可以提问,老顾能帮忙的会尽量帮忙哦。
前端sqlserverasp.net 技术论坛(原bbs) 北京·西城区
社区管理员
  • 文盲老顾
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧