基本思想:

DP+贪心问题;

贪心后面开个专题刷,现在有点迷瞪;

DP思路:

DP有点像背包问题,但是又不全相似;
建立一维dp数组,dp[i]代表i数值时,所能够凑成的最小硬币数;
但是需要注意两个问题:
1.dp[i]=0代表无法凑成,0为终止;
2.在dp数组中,应该用coin内的值进行初始化,遍历的时候需要跳过有初始化值的位置,因为初始化后单个硬币肯定是少的;

看了看题解,更简单,直接判断当前coin大小即可;

具体代码:

class Solution {public:int coinChange(vector<int>& coins, int amount) {int Max = amount + 1;vector<int> dp(amount + 1, Max);dp[0] = 0;for (int i = 1; i <= amount; ++i) {for (int j = 0; j < (int)coins.size(); ++j) {if (coins[j] <= i) {dp[i] = min(dp[i], dp[i - coins[j]] + 1);}}}return dp[amount] > amount ? -1 : dp[amount];}
};

LeetCode 322. 零钱兑换***相关推荐

  1. leetcode: 322.零钱兑换

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

  2. LeetCode 322. 零钱兑换(DP)

    文章目录 1. 题目信息 2. 解题 2.1 回溯穷举 2.2 动态规划 1. 题目信息 给定不同面额的硬币 coins 和一个总金额 amount. 编写一个函数来计算可以凑成总金额所需的最少的硬币 ...

  3. golang力扣leetcode 322.零钱兑换

    322.零钱兑换 322.零钱兑换 题解 代码 322.零钱兑换 322.零钱兑换 题解 //state: dp[i]金额为i时所需最少硬币个数 //function: dp[i]=dp[i-n]+1 ...

  4. Java实现 LeetCode 322 零钱兑换

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

  5. [LeetCode] 322.零钱兑换 五种方法讲解

    322.零钱兑换 五种方法讲解 文章目录 322.零钱兑换 五种方法讲解 1 问题描述 2 问题分析 3 解决策略 3.1 递归-暴力解决 3.2 递归-加入存储 3.3 BFS 3.4 动态规划-自 ...

  6. LeetCode 322. 零钱兑换

    322. 零钱兑换 难度 中等 给你一个整数数组 coins ,表示不同面额的硬币:以及一个整数 amount ,表示总金额. 计算并返回可以凑成总金额所需的 最少的硬币个数 .如果没有任何一种硬币组 ...

  7. Leetcode.322 零钱兑换

    索引iii表示 amountamountamount 金额,dp[i]dp[i]dp[i] 表示最少 coinscoinscoins 个数. 递归 class Solution {int res = ...

  8. Leetcode 322.零钱兑换

    Time: 20190906 Type: Medium 题目描述 给定不同面额的硬币 coins 和一个总金额 amount.编写一个函数来计算可以凑成总金额所需的最少的硬币个数.如果没有任何一种硬币 ...

  9. leetcode 322. 零钱兑换 思考分析

    目录 1.题目 2.思路分析 3.参考链接 1.题目 给定不同面额的硬币 coins 和一个总金额 amount.编写一个函数来计算可以凑成总金额所需的最少的硬币个数.如果没有任何一种硬币组合能组成总 ...

  10. 99. Leetcode 322. 零钱兑换 (动态规划-完全背包)

    步骤一.确定状态: 确定dp数组及下标含义 dp数组是个amout+1的数组,dp[j]表示的是装满容量为j的背包所需要的最 少物品的个数 步骤二.推断状态方程: 对于当前物品i, 有两种选择决定了d ...

最新文章

  1. 部署 instance 到 VXLAN - 每天5分钟玩转 OpenStack(112)
  2. OpenStack虚机网卡的创建过程
  3. 关于stm32的数据类型
  4. VC mfc 多文档程序更改子文档标题名
  5. 2015最火十大Android开源项目,是个程序员你就该看看!
  6. boost::math::acosh用法的测试程序
  7. Spring Injection with @Resource, @Autowired and @Inject
  8. 关于spring中util:/的配置
  9. Mysql配置文件读取顺序
  10. 佳能EOS R5逼出性能怪兽索尼A1,2021佳能如何接招?
  11. python训练mask rcnn模型C++调用训练好的模型--基于opencv4.0(干货满满)
  12. minist数据集的获取方法
  13. 小学计算机教学笔记,信息技术在小学数学教学的运用
  14. Windows10息屏快的问题解决办法(在更改屏幕和睡眠时间无效的情况下)
  15. C# 模拟PCM数据并创建WAV文件
  16. Redis(持久化、主从复制、主从切换、twemproxy、redis集群)
  17. android 触摸事件 取消,如何禁用/重新启用Android中的触摸事件?
  18. JavaScript 介绍
  19. C语言用指针法输入12个整数,然后按每行4个数输出(刷题)
  20. 如何查询澳大利亚药监局(TGA)药品信息数据

热门文章

  1. Flink窗口起始时间计算
  2. QQ音乐PC端保存歌手写真的方法
  3. 打印机扫描计算机远程扫描仪,未在设备上将扫描类型设置为(远程扫描仪)的解决方法...
  4. 古老 IP 新玩法,盘点传统文化出圈秘籍
  5. 2020年终总结!新的起航,新的征程
  6. 计算机学院肖鹏,肖鹏-重庆大学物理学院
  7. usb3.0传输速度测试软件,USB3.0与USB2.0的传输速度对比测试
  8. Python 画图加坐标,加点,加网格
  9. 架构师学习笔记(四)架构师线路之系统架构师企业架构师
  10. Hexo Next为每篇文章设置自定义的banner图片