LeetCode专栏
LeetCode刷题总结
ECNU_Jiang
自2020年11月12日起,开始设置leetcode专题
展开
-
动态规划专区-解码方法
思路当题目中出现总数,最大之类字眼,可能可以使用动态规划,显然存在最优子结构,并且当前的最优解只与前两个最优解有关,因此明确了可以使用动态规划。这道题目的考察点在于边界条件的判定,需要充分考虑不同情况下的转移方程,得状态转移方程为:这里是引用源码:class Solution { public int numDecodings(String s) { if(s.startsWith("0")){ // 加入包含前导零 return 0;..原创 2020-11-12 11:42:43 · 125 阅读 · 0 评论 -
字符串-KMP算法
KMP算法是一种前缀匹配算法,具体算法网上特别多,这里标记一下我觉得讲的比较好容易理解的方法,见网页漫画:什么是KMP算法.该篇文章废话比较多,但是都是为了渐渐拉开KMP算法的神秘面纱,值得慢慢看。...原创 2020-07-01 15:30:56 · 165 阅读 · 0 评论 -
字符串-BM算法
问题说明BM算法是一种字符串匹配算法,也就是存在两个字符串,用其中一个较短的字符串(称之为模式串)去匹配较长的字符串(待匹配串),看它是不是较长的字符串的子串。例如:用EXAMPLE 来匹配是否为 HERE IS A SIMPLE EXAMPLE 的子串。具体的方式如下:首先,我们要了解两个概念:(这里过于抽象可以先不看)坏字符算法:在模式串向后移动的过程中让坏字符尽量匹配模式串中最后面的与坏字符相同的字符好后缀算法:具体的使用我们直接带到例子中看。step 1BM算法是基于后缀原创 2020-06-30 16:34:13 · 4428 阅读 · 0 评论