摘要: 读完本文,你可以去力扣拿下如下题目: 1143.最长公共子序列 最长公共子序列(Longest Common Subsequence,简称 LCS)是一道非常经典的面试题目,因为它的解法是典型的二维动态规划,大部分比较困难的字符串问题都和这个问题一个套路,比如说编辑距离。而且,这个算法稍加改造就可以 阅读全文
posted @ 2020-11-08 19:44 labuladong 阅读(7183) 评论(0) 推荐(2) 编辑
摘要: 读完本文,你可以去力扣拿下如下题目: 516.最长回文子序列 子序列问题是常见的算法问题,而且并不好解决。 首先,子序列问题本身就相对子串、子数组更困难一些,因为前者是不连续的序列,而后两者是连续的,就算穷举你都不一定会,更别说求解相关的算法问题了。 而且,子序列问题很可能涉及到两个字符串,比如前文 阅读全文
posted @ 2020-11-08 19:38 labuladong 阅读(1462) 评论(0) 推荐(0) 编辑
摘要: 这篇文章就给你讲明白两个问题: 1、到底什么才叫「最优子结构」,和动态规划什么关系。 2、为什么动态规划遍历 dp 数组的方式五花八门,有的正着遍历,有的倒着遍历,有的斜着遍历。 一、最优子结构详解 「最优子结构」是某些问题的一种特定性质,并不是动态规划问题专有的。也就是说,很多问题其实都具有最优子 阅读全文
posted @ 2020-11-08 19:27 labuladong 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 读完本文,你可以去力扣拿下如下题目: 1312.让字符串成为回文串的最少插入次数 回文串就是正着读反着读都一样的字符,在笔试面试中经常出现这类问题。 labuladong 公众号有好几篇讲解回文问题的文章,是判断回文串或者寻找最长回文串/子序列的: 判断回文链表 计算最长回文子串 计算最长回文子序列 阅读全文
posted @ 2020-11-08 19:23 labuladong 阅读(479) 评论(0) 推荐(0) 编辑
摘要: 读完本文,你可以去力扣拿下如下题目: 53.最大子序和 最大子数组问题和前文讲过的 经典动态规划:最长递增子序列 的套路非常相似,代表着一类比较特殊的动态规划问题的思路: 思路分析 其实第一次看到这道题,我首先想到的是滑动窗口算法,因为我们前文说过嘛,滑动窗口算法就是专门处理子串/子数组问题的,这里 阅读全文
posted @ 2020-11-08 19:22 labuladong 阅读(624) 评论(0) 推荐(0) 编辑
我的公众号 labuladong,专注于 LeetCode 刷题,欢迎关注。