代码随想录算法训练营第四十五天 | 322. 零钱兑换、279. 完全平方数
322. 零钱兑换
题目链接:322. 零钱兑换
- 递推公式!:
dp[j] = Math.min(dp[j], dp[j-coins[i]]) - 初始化最大值
- 遍历顺序无所谓
279. 完全平方数
题目链接:279. 完全平方数
- 和上题类似
-
class Solution { public: int numSquares(int n) { // 和为i的平方数的最小数量是 dp[i] vector<int> dp(n + 1); dp[0] = 0; for (int i = 1; i <= n; i++) { dp[i] = INT_MAX; // 最坏的情况 for (int j = 1; j * j <= i; j++) { dp[i] = min(dp[i], dp[i - j * j] + 1); } } return dp[n]; } };