Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit f9f11d5

Browse files
update content
1 parent f0a7873 commit f9f11d5

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

‎动态规划系列/动态规划详解进阶.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
2828

2929

30-
这篇文章是我们公众号半年前一篇 200 多赞赏的成名之作 [动态规划详解](https://mp.weixin.qq.com/s/1V3aHVonWBEXlNUvK3S28w) 的进阶版。由于账号迁移的原因,旧文无法被搜索到,所以我润色了本文,并添加了更多干货内容,希望本文成为解决动态规划的一部「指导方针」。
30+
这篇文章是我的公众号多年前一篇 200 多赞赏的成名之作 [动态规划详解](https://mp.weixin.qq.com/s/1V3aHVonWBEXlNUvK3S28w) 的进阶版,我润色了本文,并添加了更多干货内容,希望本文成为解决动态规划的一部「指导方针」。
3131

3232
动态规划问题(Dynamic Programming)应该是很多读者头疼的,不过这类问题也是最具有技巧性,最有意思的。本书使用了整整一个章节专门来写这个算法,动态规划的重要性也可见一斑。
3333

‎算法思维系列/滑动窗口技巧进阶.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,17 @@ while (right < nums.size()) {
8383

8484
反观嵌套 for 循环的暴力解法,那个 `j` 会回退,所以某些元素会进入和离开窗口多次,所以时间复杂度就是 `O(N^2)` 了。
8585

86-
我在 [算法时空复杂度分析实用指南](https://labuladong.online/algo/essential-technique/complexity-analysis/) 有教大家如何从理论上估算时间空间复杂度,这里就不展开了。
86+
我在 [算法时空复杂度分析实用指南](https://labuladong.online/algo/essential-technique/complexity-analysis/) 有具体教大家如何从理论上估算时间空间复杂度,这里就不展开了。
87+
88+
:::
89+
90+
::: info 为啥滑动窗口能在 `O(N)` 的时间穷举子数组?
91+
92+
这个问题本身就是错误的,**滑动窗口并不能穷举出所有子串**。要想穷举出所有子串,必须用那个嵌套 for 循环。
93+
94+
然而对于某些题目,并不需要穷举所有子串,就能找到题目想要的答案。滑动窗口就是这种场景下的一套算法模板,帮你对穷举过程进行剪枝优化,避免冗余计算。
95+
96+
所以在 [算法的本质](https://labuladong.online/algo/essential-technique/algorithm-summary/) 中我把滑动窗口算法归为「如何聪明地穷举」一类。
8797

8898
:::
8999

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /