70. 爬楼梯
题目链接:https://leetcode.cn/problems/climbing-stairs/
0x1 看到题目的第一想法
0x2 自己实现过程中遇到哪些困难
0x3 今日学习的文章链接,或者视频链接
0x4 看完代码随想录之后的想法
- 完全背包
- dp[i]:爬到有i个台阶的楼顶,有dp[i]种方法
- 求装满背包有几种方法,公式都是:dp[j] += dp[j - nums[i]]
- dp[0] = 1
- 求排列问题,target放外层,nums放内层,从前向后遍历
0x5 今日收获,记录一下自己的学习时长
- 1h
322. 零钱兑换
题目链接:https://leetcode.cn/problems/coin-change/
0x1 看到题目的第一想法
0x2 自己实现过程中遇到哪些困难
0x3 今日学习的文章链接,或者视频链接
0x4 看完代码随想录之后的想法
- dp[j]:凑足总额为j所需钱币的最少个数为dp[j]
- 凑足总额为j - coins[i]的最少个数为dp[j - coins[i]],那么只需要加上一个钱币coins[i]即dp[j - coins[i]] + 1就是dp[j](考虑coins[i])
- dp[j] = min(dp[j - coins[i]] + 1, dp[j])
- dp[0] = 0, 下标非0的元素是最大值
- 本题求钱币最小个数,那么钱币有顺序和没有顺序都可以,都不影响钱币的最小个数
- :外层for循环遍历物品,内层for遍历背包或者外层for遍历背包,内层for循环遍历物品都可以
0x5 今日收获,记录一下自己的学习时长
- 1h
279.完全平方数
题目链接:https://leetcode.cn/problems/perfect-squares/
0x1 看到题目的第一想法
0x2 自己实现过程中遇到哪些困难
- 没明白我是哪里错了
0x3 今日学习的文章链接,或者视频链接
0x4 看完代码随想录之后的想法
- dp[j]:和为j的完全平方数的最少数量为dp[j]
- dp[j] 可以由dp[j - i i]推出, dp[j - i i] + 1 便可以凑成dp[j]
- dp[j] = min(dp[j - i * i] + 1, dp[j])
- dp[0] = 0, 非0下标的元素是最大值
- 外层for遍历背包,内层for遍历物品,还是外层for遍历物品,内层for遍历背包,都是
0x5 今日收获,记录一下自己的学习时长
- 1h
总结
- 完全背包
- 求装满背包有几种方法,公式都是:dp[j] += dp[j - nums[i]]
- 求最小个数:min(dp[j - coins[i]] + 1, dp[j])
复习
- day19
- 合并二叉树
- 递归又忘了
- 合并二叉树
待重点复习
70, 322, 279, 617