动态规划
_amnesia_
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcode 72. 编辑距离
题解 dp 动态规划 很经典的一道题目 dp[i][j] 表示 word1 到 i 位置转换为 word2 到 j 位置的最小步数 当 word1[i] == word2[j] 时,dp[i][j] = dp[i-1][j-1] 当 word1[i] != word2[j] 时,dp[i][j] = min(dp[i - 1][j - 1] , dp[i-1][j],dp[i][j-1]) + 1 其中还包含初始化操作 当word2字符串为空,word1变为word2只需要删除当时存在的字符即可 当word原创 2021-06-17 18:55:33 · 145 阅读 · 0 评论 -
leetcode 64. 最小路径和
题解 呀 独立做出来的,果然 熟能生巧 还和昨天的那个一样,动态规划 dp[i][j] 表示从左上角走到i,j点时最短距离,那么dp[i][j] = grid[i][j] + min(dp[i -1][j],dp[i][j-1]) 初始化是第一行第一列的最短路径就是到这点时这行和这列的数的总和。 有什么不对的或者简便的算法欢迎指正~ 代码 class Solution { public: int minPathSum(vector<vector<int>>& grid原创 2021-06-14 09:52:42 · 148 阅读 · 0 评论 -
leetcode 62. 不同路径
题解 动态规划 f(i,j) 表示从左上角到(i,j) 点的路径和,那么走到ij 的前一点到ij 有两种方式 那么 f(i,j) = f(i-1,j) + f(i,j-1) 其中初始化 f(0,0) = 1,f(i,0) = 1,f(0,j) = 1,因为从左上角走到这几点的位置只有一条路径。 代码 class Solution { public: int uniquePaths(int m, int n) { vector<vector<int>> f(m,原创 2021-06-13 08:48:14 · 117 阅读 · 0 评论 -
leetcode 53. 最大子序和
题解 简单的动态规划吧算是 还是比较简单的题目 首先计算sum的值,如果和的值大于0那么这一段的和就对后面那个数有用,否则,就重新从下一个数开始,然后取最大值。 代码 class Solution { public: int maxSubArray(vector<int>& nums) { int n = nums.size(); int ans = nums[0],sum = 0; for(int i = 0; i < n;原创 2021-05-02 10:52:45 · 131 阅读 · 0 评论 -
leetcode 32. 最长有效括号
题解 i’m coming~ 终于又回来了~ 动态规划 难 想不到 dp[i] 表示以第i 个字符为结尾的最长连续的括号长度 如果 s[i] = ‘(’ 那么dp[i] = 0 如果 s[i] = ‘)’ 那么就需要分情况来判断 如果 s[i - 1] =’(’ 那么 dp[i] = dp[i - 2] + 2 这里需要满足 i - 2 >= 0 如果不满足的话那么dp[i] = 2。 如果s[i - 1] = ‘)’ 那么需要判断 第 i - dp[i - 1] - 1 这个位置是否为‘(’ ,如果原创 2021-04-12 16:15:08 · 102 阅读 · 0 评论 -
leetcode10. 正则表达式匹配
题解 动态规划 这道题还是相对来说比较难一些的,动态规划,其实就是剪枝搜索,搜索s的前i 个字符和 p 的前j 个字符是否相匹配 题解在代码的注释中详细给出,建议打一遍代码仔细理解一下,要把情况考虑全。。。 感觉思路真的是挺难想的。。。 class Solution { public: bool isMatch(string s, string p) { int m = s.length() + 1; int n = p.length() + 1; v原创 2021-03-14 10:53:33 · 125 阅读 · 0 评论 -
leetcode 5. 最长回文子串
题解 其实暴力也可以解的,但是觉得会比动态规划还要麻烦 本文采用的为动态规划解法,我觉得还是比较容易看懂的。 dp方程如下 判断i - j是否为回文串的dp方程如下 dp[i][j]={1,if i = js[i]==s[j],else if j - i == 1s[i]==s[j]ands[i+1][j−1],else dp[ i ][ j ] = \begin{cases} 1, & \text {if $原创 2021-03-11 11:17:26 · 98 阅读 · 0 评论
分享