File tree 5 files changed +30
-33
lines changed
5 files changed +30
-33
lines changed Original file line number Diff line number Diff line change 22
22
23
23
** -----------**
24
24
25
- 这篇文章是我们号半年前一篇 200 多赞赏的成名之作「动态规划详解」的进阶版。由于账号迁移的原因,旧文无法被搜索到,所以我润色了本文,并添加了更多干货内容,希望本文成为解决动态规划的一部「指导方针」。
25
+ 本文有视频版:[ 动态规划框架套路详解] ( https://www.bilibili.com/video/BV1XV411Y7oE )
26
+
27
+ 这篇文章是我们公众号半年前一篇 200 多赞赏的成名之作 [ 动态规划详解] ( https://mp.weixin.qq.com/s/1V3aHVonWBEXlNUvK3S28w ) 的进阶版。由于账号迁移的原因,旧文无法被搜索到,所以我润色了本文,并添加了更多干货内容,希望本文成为解决动态规划的一部「指导方针」。
26
28
27
29
动态规划问题(Dynamic Programming)应该是很多读者头疼的,不过这类问题也是最具有技巧性,最有意思的。本书使用了整整一个章节专门来写这个算法,动态规划的重要性也可见一斑。
28
30
Original file line number Diff line number Diff line change 22
22
23
23
** -----------**
24
24
25
+ 本文是前文 [ 二分搜索详解] ( https://mp.weixin.qq.com/s/uA2suoVykENmCQcKFMOSuQ ) 的修订版,添加了对二分搜索算法更详细的分析。
26
+
25
27
先给大家讲个笑话乐呵一下:
26
28
27
29
有一天阿东到图书馆借了 N 本书,出图书馆的时候,警报响了,于是保安把阿东拦下,要检查一下哪本书没有登记出借。阿东正准备把每一本书在报警器下过一下,以找出引发警报的书,但是保安露出不屑的眼神:你连二分查找都不会吗?于是保安把书分成两堆,让第一堆过一下报警器,报警器响;于是再把这堆书分成两堆…… 最终,检测了 logN 次之后,保安成功的找到了那本引起警报的书,露出了得意和嘲讽的笑容。于是阿东背着剩下的书走了。
Original file line number Diff line number Diff line change 22
22
23
23
** -----------**
24
24
25
+ 本文有视频版:[ 回溯算法框架套路详解] ( https://www.bilibili.com/video/BV1P5411N7Xc )
25
26
26
- 这篇文章是很久之前的一篇《 回溯算法详解》 的进阶版,之前那篇不够清楚,就不必看了,看这篇就行。把框架给你讲清楚,你会发现回溯算法问题都是一个套路。
27
+ 这篇文章是很久之前的一篇 [ 回溯算法详解] ( https://mp.weixin.qq.com/s/trILKSiN9EoS58pXmvUtUQ ) 的进阶版,之前那篇不够清楚,就不必看了,看这篇就行。把框架给你讲清楚,你会发现回溯算法问题都是一个套路。
27
28
28
29
废话不多说,直接上回溯算法框架。** 解决一个回溯问题,实际上就是一个决策树的遍历过程** 。你只需要思考 3 个问题:
29
30
Original file line number Diff line number Diff line change 27
27
28
28
** -----------**
29
29
30
+ 本文是之前的一篇文章 [ 滑动窗口算法详解] ( https://mp.weixin.qq.com/s/nJHIxQ2BbqhDv5jZ9NgXrQ ) 的修订版,添加了滑动窗口算法更详细的解释。
31
+
30
32
本文详解「滑动窗口」这种高级双指针技巧的算法框架,带你秒杀几道高难度的子字符串匹配问题。
31
33
32
34
LeetCode 上至少有 9 道题目可以用此方法高效解决。但是有几道是 VIP 题目,有几道题目虽不难但太复杂,所以本文只选择点赞最高,较为经典的,最能够讲明白的三道题来讲解。第一题为了让读者掌握算法模板,篇幅相对长,后两题就基本秒杀了。
@@ -318,9 +320,17 @@ while (right < s.size()) {
318
320
319
321
稍微麻烦的地方就是这个 valid 条件,为了实现这个条件的实时更新,我们可能会写很多代码。比如前两道题,看起来解法篇幅那么长,实际上思想还是很简单,只是大多数代码都在处理这个问题而已。
320
322
321
- 如果本文对你有帮助,欢迎关注我的公众号 labuladong,致力于把算法问题讲清楚~
323
+ ** _____________**
324
+
325
+ ** 刷算法,学套路,认准 labuladong,公众号和 [ 在线电子书] ( https://labuladong.gitbook.io/algo/ ) 持续更新最新文章** 。
326
+
327
+ ** 本小抄即将出版,微信扫码关注公众号,后台回复「小抄」限时免费获取,回复「进群」可进刷题群一起刷题,带你搞定 LeetCode** 。
328
+
329
+ <p align =' center ' >
330
+ <img src =" ../pictures/qrcode.jpg " width =200 >
331
+ </p >
322
332
323
- ![ 公众号 labuladong ] ( ../pictures/labuladong.png )
333
+ ======其他语言代码======
324
334
325
335
[ Jiajun] ( https://github.com/liujiajun ) 提供最小覆盖子串 Python3 代码:
326
336
``` python3
@@ -361,19 +371,6 @@ class Solution:
361
371
return s[start:start+ min_len] if min_len != float (" Inf" ) else " "
362
372
```
363
373
364
- ** _____________**
365
-
366
- ** 刷算法,学套路,认准 labuladong,公众号和 [ 在线电子书] ( https://labuladong.gitbook.io/algo/ ) 持续更新最新文章** 。
367
-
368
- ** 本小抄即将出版,微信扫码关注公众号,后台回复「小抄」限时免费获取,回复「进群」可进刷题群一起刷题,带你搞定 LeetCode** 。
369
-
370
- <p align =' center ' >
371
- <img src =" ../pictures/qrcode.jpg " width =200 >
372
- </p >
373
-
374
- ======其他语言代码======
375
-
376
-
377
374
378
375
第3题 Python3 代码(提供: [ FaDrYL] ( https://github.com/FaDrYL ) ):
379
376
``` Python3
Original file line number Diff line number Diff line change @@ -62,11 +62,18 @@ ListNode deleteDuplicates(ListNode head) {
62
62
63
63
![ ] ( ../pictures/%E6%9C%89%E5%BA%8F%E6%95%B0%E7%BB%84%E5%8E%BB%E9%87%8D/2.gif )
64
64
65
- ** 致力于把算法讲清楚!欢迎关注我的微信公众号 labuladong,查看更多通俗易懂的文章** :
66
65
67
- ![ labuladong] ( ../pictures/labuladong.png )
66
+ ** _____________**
67
+
68
+ ** 刷算法,学套路,认准 labuladong,公众号和 [ 在线电子书] ( https://labuladong.gitbook.io/algo/ ) 持续更新最新文章** 。
68
69
69
- [ eric wang] ( https://www.github.com/eric496 ) 提供有序数组 Python3 代码
70
+ ** 本小抄即将出版,微信扫码关注公众号,后台回复「小抄」限时免费获取,回复「进群」可进刷题群一起刷题,带你搞定 LeetCode** 。
71
+
72
+ <p align =' center ' >
73
+ <img src =" ../pictures/qrcode.jpg " width =200 >
74
+ </p >
75
+
76
+ ======其他语言代码======
70
77
71
78
``` python
72
79
def removeDuplicates (self , nums : List[int ]) -> int :
@@ -106,16 +113,4 @@ def deleteDuplicates(self, head: ListNode) -> ListNode:
106
113
# 断开与后面重复元素的连接
107
114
slow.next = None
108
115
return head
109
- ```
110
-
111
- ** _____________**
112
-
113
- ** 刷算法,学套路,认准 labuladong,公众号和 [ 在线电子书] ( https://labuladong.gitbook.io/algo/ ) 持续更新最新文章** 。
114
-
115
- ** 本小抄即将出版,微信扫码关注公众号,后台回复「小抄」限时免费获取,回复「进群」可进刷题群一起刷题,带你搞定 LeetCode** 。
116
-
117
- <p align =' center ' >
118
- <img src =" ../pictures/qrcode.jpg " width =200 >
119
- </p >
120
-
121
- ======其他语言代码======
116
+ ```
You can’t perform that action at this time.
0 commit comments