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

兑换零钱(一)

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]即可。

全部评论

相关推荐

Twilight_m...:经典我朋友XXXX起手,这是那种经典的不知道目前行情搁那儿胡编乱造瞎指导的中年人,不用理这种**
点赞 评论 收藏
分享
能干的三文鱼刷了10...:公司可能有弄嵌入式需要会画pcb的需求,而且pcb能快速直观看出一个人某方面的实力。看看是否有面试资格。问你问题也能ai出来,pcb这东西能作假概率不高
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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