摘要:
题型:动态规划,难度大 1.确定dp数组以及下标的含义 dp[i][j] 表示以下标i-1为结尾的字符串word1,和以下标j-1为结尾的字符串word2,最近编辑距离为dp[i][j]。 2.确定递推公式 class Solution { public: int minDistance(strin 阅读全文
posted @ 2025-09-16 23:41
往事携冷风
阅读(1)
评论(0)
推荐(0)
摘要:
1.确定dp数组(dp table)以及下标的含义 dp[i][j] :表示从(0 ,0)出发,到(i, j) 有dp[i][j]条不同的路径。 2.确定递推公式 想要求dp[i][j],只能有两个方向来推导出来,即dp[i - 1][j] 和 dp[i][j - 1]。 此时在回顾一下 dp[i 阅读全文
posted @ 2025-09-16 20:14
往事携冷风
阅读(1)
评论(0)
推荐(0)
摘要:
1.确定dp数组以及下标的含义 dp[i]:爬到第i层楼梯,有dp[i]种方法 2.确定递推公式 dp[i]=dp[i-1]+dp[i-2] 3.dp数组如何初始化 dp[1]=1,dp[2]=2 4.确定遍历顺序 从前向后遍历的 5.举例推导dp数组 class Solution { public 阅读全文
posted @ 2025-09-16 20:00
往事携冷风
阅读(2)
评论(0)
推荐(0)
摘要:
题型:动态规划 动规五部曲 1.确定dp数组以及下标的含义 dp[i]:包括下标(以nums[i]为结尾)的最大连续子序列和为dp[i] 2.确定递推公式 dp[i-1]+nums[i],即:nums[i]加入当前连续子序列和 nums[i],即:从头开始计算当前连续子序列和 一定是取最大的,所以d 阅读全文
posted @ 2025-09-16 17:19
往事携冷风
阅读(0)
评论(0)
推荐(0)
摘要:
class Solution { public: vector<vector<string>> groupAnagrams(vector<string>& strs) { unordered_map<string,vector<string>>mp; for(string &str:strs){ s 阅读全文
posted @ 2025-09-16 16:53
往事携冷风
阅读(1)
评论(0)
推荐(0)
摘要:
题型属于回溯算法 1.递归函数参数 排列有序,因此需要一个used数组,标记已经选择的元素 2.递归终止条件 当收集元素的数组path的大小达到和nums数组一样大的时候,说明找到了一个全排列,也表示达到了叶子节点。 3.单层搜索的逻辑 与组合问题相比最大的不同就是for循环里不用startinde 阅读全文
posted @ 2025-09-16 15:43
往事携冷风
阅读(2)
评论(0)
推荐(0)
摘要:
这三道题都是单调栈的应用 力扣739题 每日温度 使用单调栈主要有三个判断条件 1.当前遍历的元素T[i]小于栈顶元素T[st.top()]的情况 2.当前遍历的元素T[i]等于栈顶元素T[st.top()]的情况 3.当前遍历的元素T[i]大于栈顶元素T[st.top()]的情况 要保持单调递增的 阅读全文
posted @ 2025-09-16 15:28
往事携冷风
阅读(2)
评论(0)
推荐(0)