一:题目

二:上码

class Solution {public:/**思路:1.分析题意这个满足答案的结果有很多种,所以我们可以用动态规划去做,那么题意中我们可以知道的是我们是可以输入一种面值的时候,我们是可以重复输入的,那么这就是背包类型中的完全背包了2.动态规划5步走1>:确定dp数组以及下标的含义dp[j] 表示背包容量为j的时候(这里也就是指的是面值),最多有dp[j]种装法2>:确定dp数组的状态递推公式dp[j] = dp[j] + dp[j-coins[i]];这里我们需要用到累加,因为我们是统计有多种装法,比如面值为5,装入2的时候  还剩下3 那么我们直接加上dp[3]时候的装法;就是我们当前的装法3>:确定dp数组的初始化当我们金额总数为0的时候,也就是我们的j == 0的时候,我们dp[j]最多有1种装法或者从代码的逻辑角度推理,我们在遍历第一个面值的时候,我们是需要第一个统计dp[j]赋初值的否则我们的后续计算是无法进行的4>:确定dp数组的遍历顺序这是完全背包,所以是允许重复的装入物品的,所以我们是正序遍历的5>:举例验证*/int change(int amount, vector<int>& coins) {vector<int> dp(amount+1,0);dp[0]=1;for(int i = 0; i < coins.size(); i++) {for(int j = coins[i]; j <=amount; j++){//这里从coins[i]开始遍历背包  因为我们的背包容量至少也是需要dp[j] += dp[j - coins[i]];                                  //coins[i]的}}   return dp[amount];}
};

leetcode518. 零钱兑换 II相关推荐

  1. Leetcode518. 零钱兑换 II(完全背包)

    分析: 首先这个题是一个完全背包问题,把面额看做是商品总金额看做背包容量,找出所有可能装满背包的方案. 首先想到肯定是动态规划,关键是找出动量关系式 例如:用1,2,5金额 已知0元的情况,直接不用任 ...

  2. 518. 零钱兑换 II golang动态规划

    518. 零钱兑换 II 给定不同面额的硬币和一个总金额.写出函数来计算可以凑成总金额的硬币组合数.假设每一种面额的硬币有无限个. 示例 1: 输入: amount = 5, coins = [1, ...

  3. 代码随想录44——动态规划:完全背包理论基础、518零钱兑换II、377组合总和IV

    文章目录 1.完全背包理论基础 2.518零钱兑换II 2.1.题目 2.2.解答 3.377组合总和IV 3.1.题目 3.2.解答 4.组合和排列问题的便利顺序 4.1.组合问题 4.2.排列问题 ...

  4. 算法训练Day44 动态规划专题- 背包问题 | 完全背包基础知识;LeetCode518. 零钱兑换(装满背包有多少种方法,组合数);377.组合总和IV(装满背包有多少种方法,排列数)

    前言: 算法训练系列是做<代码随想录>一刷,个人的学习笔记和详细的解题思路,总共会有60篇博客来记录,计划用60天的时间刷完.  内容包括了面试常见的10类题目,分别是:数组,链表,哈希表 ...

  5. 【必备算法】动态规划:LeetCode题(六)322. 零钱兑换,518. 零钱兑换 II

    322. 零钱兑换² 给定不同面额的硬币 coins 和一个总金额 amount.编写一个函数来计算可以凑成总金额所需的最少的硬币个数.如果没有任何一种硬币组合能组成总金额,返回 -1. 示例 1: ...

  6. java刷题--518零钱兑换II

    java刷题--518零钱兑换II 题目 代码 结果 题目 代码 class Solution {public int change(int amount, int[] coins) {int[] d ...

  7. 【leetcode题解——动态规划之完全背包】518.零钱兑换II(python版本详解+表格+dp五部曲)

    518. 零钱兑换 II 重点: 本题求组合数,而非排列数. 例如示例: 5 = 2 + 2 + 1 5 = 2 + 1 + 2 这是一种组合,都是 2 2 1,而(2,2,1)(2,1,2)为两种排 ...

  8. leetocde 518 零钱兑换II

    前言 题目:518. 零钱兑换 II 参考:完全背包问题-大草.零钱兑换 II-力扣官方题解 提交代码 我可以理解01背包的滚动数组,但是我理解不了完全背包的滚动数组. 理解不了,便用二维数组.虽然二 ...

  9. leetcode:518. 零钱兑换 II

    518 零钱兑换 II 来源:力扣(LeetCode) 链接: https://leetcode.cn/problems/coin-change-2/ 给你一个整数数组 coins 表示不同面额的硬币 ...

最新文章

  1. 使用ADO.NET 的最佳实践(zz)
  2. 【计算理论】可判定性 ( 非确定性有限自动机的接受问题 | 证明 “非确定性有限自动机的接受问题“ 的可判定性 )
  3. 如何在管理员页面查看知识星球活跃度和更多明细
  4. HTML5商城开发四 多图或多商品的水平滚动展示
  5. linux 系统调优查看排除方法
  6. jquery $(document).ready() 与js原生的window.onload的区别总结
  7. SCCM 2012安装部署三:客户端管理
  8. 换回了WINDOWS7
  9. axios直传阿里云,获取上传进度已以及取消上传
  10. 一个SQL SERVER查询分析器非常好用的工具
  11. ppt压缩文件怎么压缩?
  12. 古代的时辰是怎样划分的
  13. iOS程序上架到appStore/已上线软件升级更新教程
  14. Codevs2491玉蟾宫
  15. 发送端口25,465,587端口
  16. 节日头像小程序源码,直接部署可用!
  17. 客快物流大数据项目(三十):软件下载后存放位置
  18. 使用PHP破解防盗链图片的一个简单方法
  19. 《Fast User-Guided Video Object Segmentation by Interaction-and-Propagation Networks》论文笔记
  20. 【C++操作手册】C++生成指定范围内随机数rand(随机数种子)

热门文章

  1. Windows 10中国定制版完工!更专业
  2. windows环境下Apache+PHP+MySQL搭建服务器
  3. 六台机器搭建RedisCluster分布式集群
  4. ArcGIS实验教程——实验四十一:ArcGIS区域分析统计直方图(土地利用--坡度分级柱状统计图的制作)
  5. IOS学习笔记十六(NSString和NSMutableString)
  6. LeetCode之Remove Duplicates from Sorted List
  7. linux网络编程之用epoll实现io复用(基于tcp)
  8. Android之解决打补丁包后移动端为什么不升级,升级之后出现“应用未安装“,以及更新成功之后反复更新问题
  9. Android之使用IDA Pro静态分析so文件
  10. 无代码iVX编程实现简单跳跃超级玛丽游戏