摘要:
LC123. 买卖股票的最佳时机Ⅲ 更多的状态转移: dp[i] [0]含义:第一次持有股票的最多现金 dp[i] [1]含义:第一次不持有股票的最多现金 dp[i] [2]含义:第二次持有股票的最多现金 dp[i] [3]含义:第二次不持有股票的最多现金 ////自写的一般实现方法 int max 阅读全文
posted @ 2023-03-15 13:34
冥紫将
阅读(40)
评论(0)
推荐(0)
摘要:
LC121. 买卖股票的最佳时机 ////自写的一般实现方法 int maxProfit(vector<int>& prices) { int purchase = prices[0]; int maxProfit = 0; int todayProfit = 0; for (int i = 1; 阅读全文
posted @ 2023-03-15 13:31
冥紫将
阅读(46)
评论(0)
推荐(0)
摘要:
LC198. 打家劫舍 自己写的版本,用pair<不取本次的最大收获, 取本次的最大收获>进行记录 int rob(vector<int>& nums) { int size = nums.size(); vector<pair<int, int>> dp(size); dp[0] = pair<i 阅读全文
posted @ 2023-03-15 13:28
冥紫将
阅读(34)
评论(0)
推荐(0)
摘要:
LC70. 爬楼梯 原题其实是一道简单动规的题目。但其实本题稍加改动就是一道面试好题。 如改为:一步一个台阶,两个台阶,三个台阶,.......,直到 m个台阶。问有多少种不同的方法可以爬到楼顶呢? 1阶,2阶,.... m阶就是物品,楼顶就是背包。每一阶可以重复使用,例如跳了1阶,还可以继续跳1阶 阅读全文
posted @ 2023-03-15 13:23
冥紫将
阅读(20)
评论(0)
推荐(0)
摘要:
LC518. 零钱兑换Ⅱ 刚开始一气写成,没想到犯了个那么傻×的毛病 class Solution { public: int change(int amount, vector<int>& coins) { int size = coins.size(); vector<int> dp(amoun 阅读全文
posted @ 2023-03-15 13:21
冥紫将
阅读(34)
评论(0)
推荐(0)
摘要:
01背包的应用 分割等和子集: 给一个weight的背包,尽量往里塞满,如果有刚刚塞满的组合,则返回true。问的是是否存在刚刚好塞满weight背包的组合。 最后一块石头的重量Ⅱ: 给一个weight的背包,尽量往里塞满,若能刚刚塞满,说明最后剩的一块石头重量为0(即不剩了)。 目标和:这道题就有 阅读全文
posted @ 2023-03-15 13:14
冥紫将
阅读(35)
评论(0)
推荐(0)
摘要:
动态规划五部曲 确定dp[i]的含义 dp递推公式 dp数组如何初始化 确认dp数组遍历顺序 打印dp数组,主要用于调试 LC416. 分割等和子集 这道题是“背包问题”的应用,但其实不好看出来。 dp[i]的含义和递推公式 与 01背包问题一致。 这道题的dp数组中,物品的weight即为价值 注 阅读全文
posted @ 2023-03-15 13:08
冥紫将
阅读(25)
评论(0)
推荐(0)
摘要:
动态规划五部曲 确定dp[i]的含义 dp递推公式 dp数组如何初始化 确认dp数组遍历顺序 打印dp数组,主要用于调试 LC343. 整数拆分 dp[i]含义:数字 i 被拆解后的最大乘积 递推公式:对多组dp[i] * [i - j] 求最大值 dp数组初始化:dp[1] = 1; dp[2] 阅读全文
posted @ 2023-03-15 13:07
冥紫将
阅读(26)
评论(0)
推荐(0)
摘要:
动态规划五部曲 确定dp[i]的含义 dp递推公式 dp数组如何初始化 确认dp数组遍历顺序 打印dp数组,主要用于调试 LC62. 不同路径 dp[i] [j]含义:到达格子(i, j)中有dp[i] [j]种方法 递推公式:dp[i] [j] = dp[i] [j - 1] + dp[i - 1 阅读全文
posted @ 2023-03-15 13:06
冥紫将
阅读(42)
评论(0)
推荐(0)

浙公网安备 33010602011771号