File tree Expand file tree Collapse file tree 6 files changed +31
-6
lines changed Expand file tree Collapse file tree 6 files changed +31
-6
lines changed Original file line number Diff line number Diff line change @@ -417,6 +417,7 @@ object Solution {
417
417
}
418
418
sum
419
419
}
420
+ ```
420
421
421
422
422
423
C#:
Original file line number Diff line number Diff line change 5
5
<p align =" center " ><strong ><a href =" https://mp.weixin.qq.com/s/tqCxrMEU-ajQumL1i8im9A " >参与本项目</a >,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们收益!</strong ></p >
6
6
7
7
8
- ## 209.长度最小的子数组
8
+ # 209.长度最小的子数组
9
9
10
10
[ 力扣题目链接] ( https://leetcode-cn.com/problems/minimum-size-subarray-sum/ )
11
11
17
17
输出:2
18
18
解释:子数组 [ 4,3] 是该条件下的长度最小的子数组。
19
19
20
+ # 思路
21
+
22
+ 为了易于大家理解,我特意录制了[ 拿下滑动窗口! | LeetCode 209 长度最小的子数组] ( https://www.bilibili.com/video/BV1tZ4y1q7XE )
20
23
21
24
## 暴力解法
22
25
@@ -47,15 +50,29 @@ public:
47
50
}
48
51
};
49
52
```
50
- 时间复杂度:O(n^2)
51
- 空间复杂度:O(1)
53
+ * 时间复杂度:O(n^2)
54
+ * 空间复杂度:O(1)
52
55
53
56
## 滑动窗口
54
57
55
58
接下来就开始介绍数组操作中另一个重要的方法:**滑动窗口**。
56
59
57
60
所谓滑动窗口,**就是不断的调节子序列的起始位置和终止位置,从而得出我们要想的结果**。
58
61
62
+ 在暴力解法中,是一个for循环滑动窗口的起始位置,一个for循环为滑动窗口的终止位置,用两个for循环 完成了一个不断搜索区间的过程。
63
+
64
+ 那么滑动窗口如何用一个for循环来完成这个操作呢。
65
+
66
+ 首先要思考 如果用一个for循环,那么应该表示 滑动窗口的起始位置,还是终止位置。
67
+
68
+ 如果只用一个for循环来表示 滑动窗口的起始位置,那么如何遍历剩下的终止位置?
69
+
70
+ 此时难免再次陷入 暴力解法的怪圈。
71
+
72
+ 所以 只用一个for循环,那么这个循环的索引,一定是表示 滑动窗口的终止位置。
73
+
74
+ 那么问题来了, 滑动窗口的起始位置如何移动呢?
75
+
59
76
这里还是以题目中的示例来举例,s=7, 数组是 2,3,1,2,4,3,来看一下查找的过程:
60
77
61
78

@@ -74,7 +91,7 @@ public:
74
91
75
92
窗口的起始位置如何移动:如果当前窗口的值大于s了,窗口就要向前移动了(也就是该缩小了)。
76
93
77
- 窗口的结束位置如何移动:窗口的结束位置就是遍历数组的指针,窗口的起始位置设置为数组的起始位置就可以了 。
94
+ 窗口的结束位置如何移动:窗口的结束位置就是遍历数组的指针,也就是for循环里的索引 。
78
95
79
96
解题的关键在于 窗口的起始位置如何移动,如图所示:
80
97
@@ -107,8 +124,8 @@ public:
107
124
};
108
125
```
109
126
110
- 时间复杂度:O(n)
111
- 空间复杂度:O(1)
127
+ * 时间复杂度:O(n)
128
+ * 空间复杂度:O(1)
112
129
113
130
** 一些录友会疑惑为什么时间复杂度是O(n)** 。
114
131
Original file line number Diff line number Diff line change @@ -356,6 +356,8 @@ object Solution {
356
356
}
357
357
}
358
358
359
+ ```
360
+
359
361
360
362
C#:
361
363
``` csharp
Original file line number Diff line number Diff line change @@ -425,6 +425,7 @@ object Solution {
425
425
true
426
426
}
427
427
}
428
+ ```
428
429
429
430
430
431
C#:
Original file line number Diff line number Diff line change @@ -354,6 +354,7 @@ object Solution {
354
354
res
355
355
}
356
356
}
357
+ ```
357
358
358
359
C#:
359
360
``` csharp
Original file line number Diff line number Diff line change 1
1
2
2
# 一台服务器有什么用!
3
3
4
+ * [ 阿里云活动期间服务器购买] ( https://www.aliyun.com/minisite/goods?taskCode=shareNew2205&recordId=3641992&userCode=roof0wob )
5
+ * [ 腾讯云活动期间服务器购买] ( https://curl.qcloud.com/EiaMXllu )
6
+
4
7
但在组织这场活动的时候,了解到大家都有一个共同的问题: ** 这个服务器究竟有啥用??**
5
8
6
9
这真是一个好问题,而且我一句两句还说不清楚,所以就专门发文来讲一讲。
You can’t perform that action at this time.
0 commit comments