07 2024 档案
摘要:98.所有可达路径 题目链接 文章讲解 邻接矩阵法 邻接矩阵使用二维数组来表示图结构。邻接矩阵是从节点的角度来表示图,有多少节点就申请多大的二维数组 为了节点标号和下标对其,有n个节点的图申请(n + 1) * (n + 1)的空间 vector<vector<int>> graph(n + 1,
阅读全文
摘要:42.接雨水 题目链接 文章讲解 视频讲解 思路找到当前柱子左边第一个比它高的和右边第一个比它高的柱子进行计算,右边第一个比它搞得柱子可以循环遍历得到,左边第一个比它高的柱子就是栈中下一个元素 class Solution { public: int trap(vector<int>& height
阅读全文
摘要:739.每日温度 题目链接 文章讲解 视频讲解 单调栈适合的场景:求当前元素左面或右面第一个比它大或小的元素 单调栈里存什么元素 只要存下标就可以了,比较元素时可以通过下标取元素 单调栈是单调增还是单调减(从栈顶到栈底) 使用单调增的单调栈 解题步骤: 遍历数组,当栈空时直接入栈 如果栈不空比较当前
阅读全文
摘要:647.回文子串 题目链接 文章讲解 视频讲解 动态规划法 动规五部曲: dp[i][j]: 表示区间范围[i, j]的字串是否是回文串 如果dp[i]表示下表为i的字符串有dp[i]个回文串的话,写不出递推公式,因为dp[i]和dp[i-1]没有什么关系,但如果已经知道i-j位置的字符串已经是回文
阅读全文
摘要:115.不同的子序列 题目链接 文章讲解 视频讲解 动规五部曲: dp[i][j]: 以i-1为结尾的s子序列中出现以j-1为结尾的t的个数为dp[i][j], 递推公式: s[i-1]与t[j-1]相等 需要是s[i-1]与t[j-1]匹配,那么个数为dp[i-1][j-1]即不需要考虑当前s子串
阅读全文
摘要:1143.最长公共子序列 题目链接 文章讲解 视频讲解 dp[i][j]: 表示以text1以i-1为结尾text2以j-1为结尾的最长公共子序列为dp[i][j] 递推公式:如果text1[i-1] == text2[j-1] 那么dp[i][j] = dp[i-1][j-1] + 1; 如果不相
阅读全文
摘要:300.最长递增子序列 题目链接 文章讲解 视频讲解 动规五部曲: dp[i]: 表示考虑元素i的最长子序列为dp[i] 递推公式:dp[i] = max(dp[j] + 1, dp[i]); 初始化:dp[i] = 1; 每个元素单独算一个子序列长度为1 遍历顺序:从前向后遍历 打印dp数组 cl
阅读全文
摘要:188.买卖股票的最佳时机IV 题目链接 文章讲解 视频讲解 动规五部曲: dp数组的含义: dp[j][2*i-1] 表示第i次持有股票 dp[j][2*i] 表示第i次不持有股票 递推公式: dp[j][2i-1] = max(dp[j-1][2i-1], dp[j-1][2*i-2] - pr
阅读全文
摘要:121.买卖股票的最佳时机 题目链接 文章讲解 视频讲解 动规五部曲: dp[j][0]: 表示持有股票的最大现金,dp[j][1]表示不持有股票的最大现金 递推公式: 第j天持有股票的最大现金为:之前就持有这只股票和今天持有这只股票取最大值: dp[j][0] = max(dp[j-1][0],
阅读全文
摘要:198.打家劫舍 题目链接 文章讲解 视频讲解 dp[j]: 表示投到第j家最多能偷dp[j]的钱 递推公式: dp[j] = max(dp[j-2] + nums[j], dp[j-1]) 初始化:dp[0] = nums[0], dp[1] = max(dp[0], dp[1]) 遍历顺序:从小
阅读全文
摘要:322.零钱兑换 题目链接 文章讲解 视频讲解 class Solution { public: int coinChange(vector<int>& coins, int amount) { // dp[j]: 表示能凑成面额j所需的最少硬币个数 vector<int> dp(amount +
阅读全文
摘要:完全背包 有N件物品和一个最多能被重量为W的背包,第i间物品的重量为weights[i],价值为value[i],每件物品都有无限个,求解将哪些物品装入背包里,物品价值总和最大 遍历顺序:纯完全背包问题(即求装满背包后的最大价值)先遍历背包先遍历物品都是可以的 和零一背包求解的最大不同就是遍历顺序,
阅读全文
摘要:1049.最后一块石头的重量 题目链接 文章讲解 视频讲解 解题思路: 将石头尽量分为相等的两堆,两堆最差即为所求结果 石头的重量就是石头的价值 动规五部曲: dp[j]:表示背包容量为j时可以装的石头的总价值 递推公式:dp[j] = max(dp[j], dp[j-stones[i]] + st
阅读全文