leetcode地址
https://leetcode-cn.com/problems/coin-change/
题目理解
【给定一个硬币面值数组,用最少的硬币个数,凑出一个固定值】
最值问题,用自底向上,动态规划
【动规三部曲】
1)定义dp数组含义,初始化
2)确定循环方向和 状态转移
3)返回
思路
- 定义dp数组含义。
dp[i]: 用dp[i] 个硬币,凑出i 元。
dp[amount]:dp[amount] 是最少的硬币数,凑出amount元。 - 定义状态转移:凑出i元,用的最少的dp[i], 取决于dp[i]和dp[i-当前面值硬币]+1 哪一个用的最少
代码
public int coinChange(int