@@ -43,7 +43,7 @@ https://leetcode-cn.com/problems/self-crossing/
43
43
44
44
## 前置知识
45
45
46
- - 滑动窗口
46
+ - 滚动数组
47
47
48
48
## 公司
49
49
@@ -60,24 +60,24 @@ https://leetcode-cn.com/problems/self-crossing/
60
60
1 . 我们画的圈不断增大。
61
61
2 . 我们画的圈不断减少。
62
62
63
- ![ ] ( https://tva1.sinaimg.cn/large/ 007S8ZIlly1ghltxh0sygj30te1dajvv.jpg )
63
+ ![ ] ( https://pic.leetcode-cn.com/1635437888-QNrRzh- 007S8ZIlly1ghltxh0sygj30te1dajvv.jpg )
64
64
(有没有感觉像迷宫?)
65
65
66
66
这样我们会发现,其实我们画最新一笔的时候,并不是之前画的所有的都需要考虑,我们只需要最近的几个就可以了,实际上是最近的五个,不过不知道也没关系,我们稍后会讲解。
67
67
68
- ![ ] ( https://tva1.sinaimg.cn/large/ 007S8ZIlly1ghltxhyhumj30to0lamyt.jpg )
68
+ ![ ] ( https://pic.leetcode-cn.com/1635437888-QiEWyD- 007S8ZIlly1ghltxhyhumj30to0lamyt.jpg )
69
69
70
70
红色部分指的是我们需要考虑的,而剩余没有被红色标注的部分则无需考虑。不是因为我们无法与之相交,而是我们` 一旦与之相交,则必然我们也一定会与红色标记部分相交 ` 。
71
71
72
72
然而我们画的方向也是不用考虑的。比如我当前画的方向是从左到右,那和我画的方向是从上到下有区别么?在这里是没区别的,不信我帮你将上图顺时针旋转 90 度看一下:
73
73
74
- ![ ] ( https://tva1.sinaimg.cn/large/ 007S8ZIlly1ghltxjatzhj30mk1cwdk7.jpg )
74
+ ![ ] ( https://pic.leetcode-cn.com/1635437888-phhprI- 007S8ZIlly1ghltxjatzhj30mk1cwdk7.jpg )
75
75
76
76
方向对于我们考虑是否相交没有差别。
77
77
78
78
当我们仔细思考的时候,会发现其实相交的情况只有以下几种:
79
79
80
- ![ ] ( https://tva1.sinaimg.cn/large/ 007S8ZIlly1ghltxkbce9j30ro0o676d.jpg )
80
+ ![ ] ( https://pic.leetcode-cn.com/1635437888-JuQzXp- 007S8ZIlly1ghltxkbce9j30ro0o676d.jpg )
81
81
82
82
这个时候代码就呼之欲出了。
83
83
@@ -95,9 +95,9 @@ https://leetcode-cn.com/problems/self-crossing/
95
95
- 对于这种$O(1)$空间复杂度有固定的套路。常见的有:
96
96
97
97
1 . 直接修改原数组
98
- 2 . 滑动窗口 (当前状态并不是和之前所有状态有关,而是仅和某几个有关)。
98
+ 2 . 滚动数组 (当前状态并不是和之前所有状态有关,而是仅和某几个有关)。
99
99
100
- 我们采用的是滑动窗口 。但是难点就在于我们怎么知道当前状态和哪几个有关。对于这道题来说,画图或许可以帮助你打开思路。另外面试的时候说出$O(N)$的思路也不失为一个帮助你冷静分析问题的手段。
100
+ 我们采用的是滚动数组。如果你了解动态规划的滚动数组优化的话应该理解我的意思 。但是难点就在于我们怎么知道当前状态和哪几个有关。对于这道题来说,画图或许可以帮助你打开思路。另外面试的时候说出$O(N)$的思路也不失为一个帮助你冷静分析问题的手段。
101
101
102
102
## 代码
103
103
@@ -131,6 +131,6 @@ class Solution:
131
131
- 时间复杂度:$O(N)$
132
132
- 空间复杂度:$O(1)$
133
133
134
- 大家对此有何看法,欢迎给我留言,我有时间都会一一查看回答。更多算法套路可以访问我的 LeetCode 题解仓库:https://github.com/azl397985856/leetcode 。 目前已经 37K star 啦。
134
+ 大家对此有何看法,欢迎给我留言,我有时间都会一一查看回答。更多算法套路可以访问我的 LeetCode 题解仓库:https://github.com/azl397985856/leetcode 。 目前已经 45K star 啦。
135
135
大家也可以关注我的公众号《力扣加加》带你啃下算法这块硬骨头。
136
136
![ ] ( https://tva1.sinaimg.cn/large/007S8ZIlly1gfcuzagjalj30p00dwabs.jpg )
0 commit comments