【文件属性】:
文件名称:判断链表是否为回文链表leetcode-LeetCode:力扣解决方案
文件大小:5.41MB
文件格式:ZIP
更新时间:2021-07-01 00:51:24
系统开源
判断链表是否为回文链表
leetcode
力码
分而治之
划分:将问题分解为更小的子问题。
采用递归方法进行除法,直到没有子问题可以进一步除法为止。
征服:子问题被认为是自己解决的。
合并:递归地合并子问题,直到它们制定出原始问题的解决方案。
动态规划(待定)
类似于分而治之。
但是这些子问题不是独立解决的,这些子问题会被记住并用于相似或重叠的子问题。
在解决现有子问题之前,算法将尝试检查先前解决的子问题的结果。
组合解决方案以获得最佳解决方案。
通用解决方案
表征最优解的结构。
递归定义最优解的值。
计算最优解的值,通常以自下而上的方式。
根据计算信息构建最佳解决方案。
最优子结构
马纳赫算法
用于回文问题。
我认为这是一种DP解决方案。
传统DP方案
设置一个$N*N$矩阵,存储每个子串条件。
$dp[i,i]
=
真$
$dp[j,i]
=
(s[i]==s[j])\if\ij
>=2$
$dp[j,i]
=
(s[i]==s[j]\
and
\dp[j+1][i-1])$
围绕中心展开
选择一个中心,比较左右。
如果相同,则
$left--,\right++$。
和回文子串++