2021-05-24Leetcode322.零钱兑换
这是一个完全背包问题。用最少的物品填满容量为amount的包。
外层循环遍历背包的容积,看在某一容积下面填满这个背包最少需要多少个硬币。
内层循环用于试着投放硬币。
class Solution {public:int coinChange(vector<int>& coins, int amount) {vector<int> dp(amount+1,amount+1);//如何确定初始值dp[0] = 0;//填满容积为0的背包不需要硬币for(int i = 1;i <= amount;i++)//外层循环用背包的容积for(int j = 0;j < coins.size();j++){//内层用物品遍历,对于每一种容积都计算出最少需要几个硬币if(coins[j] <= i){//只有小于当下容积的硬币才放的进去;dp[i] = min(dp[i],dp[i - coins[j]]+1);}}//return dp[amount];这样没有考虑到如果存在不满足的要如何返回return dp[amount] > amount ? -1 : dp[amount];}
};
几个问题
1)dp数组如何初始化?全部初始化为amount+1。因为硬币的最小的面值为1,填满这个背包最多要使用amount个,要使用最少的硬币一定是小于等于amount的。
2)为什么是外层遍历背包的容积,内层遍历物品呢?
2021-05-24Leetcode322.零钱兑换相关推荐
- c++ 多重背包状态转移方程_背包问题之零钱兑换
读完本文,你可以去力扣拿下如下题目: 518.零钱兑换II ----------- 零钱兑换 2 是另一种典型背包问题的变体,我们前文已经讲了 经典动态规划:0-1 背包问题 和 背包问题变体:相等子 ...
- 518. 零钱兑换 II golang动态规划
518. 零钱兑换 II 给定不同面额的硬币和一个总金额.写出函数来计算可以凑成总金额的硬币组合数.假设每一种面额的硬币有无限个. 示例 1: 输入: amount = 5, coins = [1, ...
- 322. 零钱兑换 golang 动态规划
题目 零钱兑换 给定不同面额的硬币 coins 和一个总金额 amount.编写一个函数来计算可以凑成总金额所需的最少的硬币个数.如果没有任何一种硬币组合能组成总金额,返回 -1. 示例 1: 输入: ...
- 动态规划思路和Python解决零钱兑换问题和最大乘积子序列的乘积的问题
动态规划(Dynamic Programming)思路和Python解题示例 动态规划是一种主要用来优化朴素递归的方法,每当输入不同值调用递归函数出现大量重复的(子)输入和调用(返回结果)时,就可以考 ...
- LeetCode 518. 零钱兑换 II(动态规划)
1. 题目 给定不同面额的硬币和一个总金额. 写出函数来计算可以凑成总金额的硬币组合数. 假设每一种面额的硬币有无限个. 示例 1: 输入: amount = 5, coins = [1, 2, 5] ...
- LeetCode 322. 零钱兑换(DP)
文章目录 1. 题目信息 2. 解题 2.1 回溯穷举 2.2 动态规划 1. 题目信息 给定不同面额的硬币 coins 和一个总金额 amount. 编写一个函数来计算可以凑成总金额所需的最少的硬币 ...
- 动态规划——零钱兑换(Leetcode 322)
题目选自Leetcode 322.零钱兑换 想必大家看一眼就明白了(bushi),这就是动态规划的背包问题~ 算法思想 那么,既然知道了这是个动态规划问题,就要思考如何列出正确的状态转移方程? 1.确 ...
- 【恋上数据结构】贪心(最优装载、零钱兑换、0-1背包)、分治(最大连续子序列和、大数乘法)
贪心.分治 贪心(Greedy) 问题1:最优装载(加勒比海盗) 问题2:零钱兑换 零钱兑换的另一个例子 贪心注意点 问题3:0-1背包 0-1 背包 - 实例 一些习题 分治(Divide And ...
- 市面上主流编辑器介绍(2021/05/20)
市面上主流编辑器介绍(2021/05/20) 背景 Markdown是一种有用的轻量级标记语言,后续Markdown简写为md. 富文本编辑器(Rich Text Editor,RTE)是一种可内嵌于 ...
- DS SIMULIA CST STUDIO SUITE 2021.05 SP5
CST Studio Suite 2021.05 - 发行说明 此补丁是推荐更新,其中包括以下更正和改进. 许可 CST Studio Suite Frontend 包括 CST Studio Sui ...
最新文章
- IOS6.0 应用内直接下载程序 不需跳转AppStore
- phpcms v9 内容页显示会员的详细信息(包括自定义字段)
- 如何为从1到10万用户的应用程序,设计不同的扩展方案?
- 蛋白结构建模与优化_最终幻想: 无中生有的蛋白质从头设计
- Ubuntu 如何为 XMind 添加快速启动方式和图标
- Python学习之路39-特性property
- python listdir报错_Python常见十六个错误集合,你知道那些?
- php 点击下拉显示内容,php+ajax实现仿百度查询下拉内容功能示例
- 页面中动态画有超连接的图
- 使用reflux进行react组件之间的通信
- python中变量的生命周期
- HDU1598 并查集+枚举
- atitit.MyEclipse10 中增加svn插件故障排除
- [黑苹果]简单修改FB实现显存增加至2048MB修复某些花屏
- 如何设计一个优惠券系统
- AIX 7.1查看硬件配置信息 查看端口IBM POWER 750 P750
- 判断微信小程序转发是否成功
- Android 百度翻译API(详细步骤+源码)
- 大数据影响下的专题地图编制
- react devtools插件报错处理