1 问题描述01 背包问题 有$N$件物品和一个容量是$V$的背包,每件物品只能使用一次。 第$i$件物品的体积是$v_i$,价值是$w_i$,求解
1 题目描述343.整数拆分 2 解题思路还是寻找递推关系,设$dp_n$为正整数$n$所求的最大乘积。 这里可以注意到:$n > 4$时, $dp_n = \max \[dp_{n - 3}
1 题目描述63.不同路径II 2 解题思路相比62.不同路径II, 主要是多了障碍物地判断,设$obstacleGrid[i][j] = 0$,则$d
1 问题描述62.不同路径 2 解题思路还是找递推关系: $dp_{mn} = dp_{(m-1)n} + dp_{m(n-1)}$ 3 代码 cpp #include <vector> using std::vector; class Solution { public: int uniquePaths(int m, int n) { vector<vector<int>> dp(m + 1, vector<int>(n + 1, 0)); dp[1][1] = 1; // dp[1][2] = 1; // dp[2][1] = 1; for (int i
1 题目描述746.使用最小花费爬楼梯 2 解题思路相当于爬楼梯的进阶版,递推关系变复杂了一些,但本质没有变。 $a_n = min(a_{n - 1} + cost[i - 1], a_{n - 2} + cost[i - 2])$ 写出
1 题目描述70.爬楼梯 2 解题思路本质上与斐波那契数是一样的:$a_n = a_{n - 1} + a_{n - 2}$ 构建for循环来遍历。 3 代码 cpp class Solution { public: int climbStairs(int n) { int cnt[2] = {1, 1};
1 题目描述509.斐波那契数 2 解题思路$a_n = a_{n-1} + a_{n-2}$,利用这一递推关系构建for循环即可,实际上只需要容量为2的数组。 3 代码