(每日一练64068)题目名称:零钱兑换
给定数组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)
相关推荐
微信零钱兑换平台,券码兑换零钱
## 主要功能 *基于微信公众号(已认证的服务号)、微信支付(已开通微信零钱) *用户进入活动页,输入正确的券码和渠道码后,平台将自动发放奖励(微信零钱)给用户 *PC版管理后台可查看相关数据,可导入券码 *导入券码规则: 使用excle文件 从excle第二行开始 券码位于A列 读取文件后可将excle文件写入系统缓存 检测无误后输入导入密码正式写入数据库 *渠道,也可视作员工、省市等概念,用于区分用户分类 ## 服务器部署 配置拟静态 try_files $uri $uri/ /index.php?s=$uri&$args; 创建数据库 配置商户证书(./shanghuzhegnshu/文件夹下) 开启 php_fileinfo 配置.env文件 //公众号 。。。 //微信支付 。。。 配置微信服务号(已认证),用于在用户打开手机页面的时候就获取到他的openid 开通微信支付商户平台,开通企业付款到零钱功能,配置密钥和证书
每日一练,随便练习练习
每日一练算法
兑换零钱.cpp
兑换零钱.cpp
Java零钱兑换问题leetcode-algorithms:数据结构与算法
Java零钱兑换问题leetcode 数据结构与算法 数据结构与算法的Java实现 数据结构 排序算法 O(n^2) O(n^2) O(n^2) O(nlog(n)) O(nlog(n)) O(n) O(nlog(n)) 字符串算法 O(n * m) O(n),极端情况下会退化为O(n * m) 时间复杂度不超过O(3n) O(n + m) 构建Trie树时间复杂度为O(n),查找时间复杂度为O(k),k是查找串长度 匹配过程时间复杂度O(n) 图算法 算法问题 BFS算法。 BFS算法。 回溯算法 时间复杂度O(n!)。 回溯算法,参照runBT函数 动态规划 参照runDP函数 双指针 参照hasCycle方法 参照detectCycle方法 参照removeNthFromEnd方法 参照twoSum方法 滑动窗口 参照minWindow方法 参照checkInclusion方法 参照findAnagrams方法 参照lengthOfLongestSubstring方法
php-leetcode题解之零钱兑换.zip
php php_leetcode题解之零钱兑换


