摘要: 题目 分析 下图为y总的递推公式分析 dp[i] 表示 开头到 i 处最长上升子序列的长度。思考递推公式,如何由小的状态推大状态? 以第 i 个数结尾的上升子序列的构成:仅含 i 位置这一个数(意味着前面上升子序列)或者 若a[i - 1] < a[i] 时,dp[i - 1] + 1。由于dp[i 阅读全文
posted @ 2021-02-17 21:22 Uitachi 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 题目 分析 完全背包问题。dp[j]表示和为j的最小硬币个数。最大最小值问题递推公式 dp[j] = min(dp[j],dp[j-coins[i]] + 1) 代码 1 class Solution { 2 public: 3 int coinChange(vector<int>& coins, 阅读全文
posted @ 2021-02-17 17:25 Uitachi 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 做了LeetCode背包几道题吧,有些感觉了,故来总结一波。本文只针对01背包和完全背包,对于考研复试够用了。其他背包有待补充....... 参考代码随想录Carl和博文 如何区分01背包和完全背包? 每种物品只能取一次(或nums数组中的每个数字只能用一次)为01背包。每种物品有无数个(或nums 阅读全文
posted @ 2021-02-17 16:05 Uitachi 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 题目 分析 本题要结合LeetCode518.零钱兑换II这道题一起看,零钱兑换是组合个数总和,而本题排列个数总和,也就是说 (1, 2, 1) 和 (2, 1, 1)是不同的。遍历顺序:要先遍历背包容量再遍历物品。正好与组合问题遍历顺序相反,组合问题不允许重复,所以要先遍历物品再遍历背包容量。由于 阅读全文
posted @ 2021-02-17 15:33 Uitachi 阅读(66) 评论(0) 推荐(0) 编辑