| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> [Hot100]回文子串 与 最长回文子串 -> 正文阅读 |
|
[数据结构与算法][Hot100]回文子串 与 最长回文子串 |
647. 回文子串 ①动态规划 状态转移方程的含义:
②中心扩展法 比如对一个字符串 ababa,选择最中间的 a 作为中心点,往两边扩散,第一次扩散发现 left 指向的是 b,right 指向的也是 b,所以是回文串,继续扩散,同理 ababa 也是回文串。 这个是确定了一个中心点后的寻找的路径,然后我们只要寻找到所有的中心点,问题就解决了。 中心点一共有多少个呢? 如果上面看不太懂的话,还可以看看下面几个问题: 为什么有 2 * len - 1 个中心点?
5. 最长回文子串中等题 ①动态规划我们用
状态转移方程: 只有
因此我们就可以写出动态规划的边界条件: 注意:在状态转移方程中,我们是从长度较短的字符串向长度较长的字符串进行转移的,因此一定要注意动态规划的循环顺序。
②中心扩展法:状态转移链:
P
(
i
,
j
)
←
P
(
i
+
1
,
j
?
1
)
←
P
(
i
+
2
,
j
?
2
)
←
?
←
某
一
边
界
情
况
P(i,j)←P(i+1,j?1)←P(i+2,j?2)←?←某一边界情况
P(i,j)←P(i+1,j?1)←P(i+2,j?2)←?←某一边界情况
中心扩散的方法,其实做了很多重复计算。动态规划就是为了减少重复计算的问题。动态规划听起来很高大上。其实说白了就是空间换时间,将计算结果暂存起来,避免重复计算。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 23:34:15- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |