
动态规划合集
文章平均质量分 69
动态规划合集
wenningker
此人无趣
展开
-
【leetcode】【题解合集】
题解合集原创 2022-10-15 11:46:54 · 2214 阅读 · 0 评论 -
【c++】【leetcode42】接雨水(动态规划、单调栈、双指针)
接雨水 解题思路:动态规划 每一根柱子头顶上能接多少雨水取=min(左边最高,右边最高)- 柱子本身的高度 因此只需要得到下标为i的柱子左边最高的left_max和右边最高的right_max的值就可以 ans[i] = min(left_max[i],right_max[i]) - height[i] 如果是每一个柱子都去遍历寻找,时间复杂度是O(n2)O(n^2)O(n2),这里可以借助动态规划去保存已经寻找过的信息。 动态规划: 初始化: left_max[0] = height[0]; ri原创 2022-05-06 17:43:28 · 881 阅读 · 0 评论 -
【c++】【leetcode91】解码方法(动态规划)
解码方法 题解 dp[i]表示到第i-1个字母时解码的方法有多少种 动态转移方程 dp[i] = dp[i-1]+dp[i-2] 特殊情况 s[i]无法和s[i-1]组合:s[i-1]=0 or s[i-1] > 2 or (s[i-1] = 2 && s[i] > 6 ,此时dp[i] = dp[i-1] s[i]只能和s[i-1]组合,s[i]=0,此时dp[i] = dp[i-2] class Solution { public: int numDecodi原创 2022-04-26 14:22:04 · 987 阅读 · 0 评论 -
【c++】【leetcode62】不同路径1/2,路径和(动态规划)
不同路径 解题思路 使用动态规划算法 dp[i][j]代表走到第i行第j列有多少路径 dp[0][j]只能由dp[0][j-1]走来dp[i][0]只能由dp[i-1][0]走来 if(i == 0 && j != 0)dp[i][j] = dp[i][j - 1]; else if(j == 0 && i != 0)dp[i][j] = dp[i - 1][j]; else if(!i && !j)continue; else dp[i][j] = d原创 2022-04-25 17:35:50 · 857 阅读 · 0 评论