学习笔记 DP 顺推模板 动态规划 和 递归或者分治 没有根本上的区别(关键看有无最优的子结构) 拥有共性:找到重复子问题 差异性:最优子结构、中途可以淘汰次优解 复杂度来源 状态拥有更多维度(二维、三维、或者更多、甚至需要压缩) 状态方程更加复杂 Rabin-Karp 算法 假设子串的长度为M, 目标字符串的长度为N 计算子串的hash值 hash_pat 计算机目标字符串txt中每个长度为M的子串hash值 比较hash: 如果hash不同,字符串必然不同,如果hash值,还需要使用朴素算法再次判断