题解 | #兑换零钱(一)#

兑换零钱(一)

https://www.nowcoder.com/practice/3911a20b3f8743058214ceaa099eeb45

dp=[],代表当总钱数为i时需要的最少钱币数;

假设当前硬币种类为{2,3,5}三种,那么dp[2]=1;dp[3]=1;dp[5]=dp[2]+dp[3];

以此类推的话,dp[6]=min(dp[2]+dp[4],dp[3]+dp[3]}),这时我们可以发现,所谓的球最少硬币数不过是:

令j为硬币集合的下标,i为总钱数;那么便是对j作循环,使得dp[i-j]+dp[j]的和最小(每一项都必须大于0),那么递推公式即为dp[i]=min(dp[i],dp[i-j]+dp[j]),对硬币种类循环完,就得到了当总钱数为i时所需要的最少硬币数。结果返回dp[-1]即可。

全部评论

相关推荐

小浪_Coding:找硬件测试,也可兼顾软测欧, 简历还可以的 ,注意排版,项目写的有条理一点, 然后个人技能多加点, 润色好简历之后就开始沟通海投了,深圳,东莞这边做硬件相关的公司还不少, 医疗类,仪器类的都可以尝试
点赞 评论 收藏
分享
鬼迹人途:你去投一投尚游游戏,服务器一面,第一个图算法,做完了给你一个策略题,你给出方案他就提出低概率问题,答不上当场给你挂
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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