diff --git a/problems/0202.快乐数.md b/problems/0202.快乐数.md index be8686f7..7738b2f6 100644 --- a/problems/0202.快乐数.md +++ b/problems/0202.快乐数.md @@ -417,6 +417,7 @@ object Solution { } sum } +``` C#: diff --git a/problems/0209.长度最小的子数组.md b/problems/0209.长度最小的子数组.md index fbef7692..69e0da4f 100644 --- a/problems/0209.长度最小的子数组.md +++ b/problems/0209.长度最小的子数组.md @@ -5,7 +5,7 @@
参与本项目,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们收益!
-## 209.长度最小的子数组 +# 209.长度最小的子数组 [力扣题目链接](https://leetcode-cn.com/problems/minimum-size-subarray-sum/) @@ -17,6 +17,9 @@ 输出:2 解释:子数组 [4,3] 是该条件下的长度最小的子数组。 +# 思路 + +为了易于大家理解,我特意录制了[拿下滑动窗口! | LeetCode 209 长度最小的子数组](https://www.bilibili.com/video/BV1tZ4y1q7XE) ## 暴力解法 @@ -47,8 +50,8 @@ public: } }; ``` -时间复杂度:O(n^2) -空间复杂度:O(1) +* 时间复杂度:O(n^2) +* 空间复杂度:O(1) ## 滑动窗口 @@ -56,6 +59,20 @@ public: 所谓滑动窗口,**就是不断的调节子序列的起始位置和终止位置,从而得出我们要想的结果**。 +在暴力解法中,是一个for循环滑动窗口的起始位置,一个for循环为滑动窗口的终止位置,用两个for循环 完成了一个不断搜索区间的过程。 + +那么滑动窗口如何用一个for循环来完成这个操作呢。 + +首先要思考 如果用一个for循环,那么应该表示 滑动窗口的起始位置,还是终止位置。 + +如果只用一个for循环来表示 滑动窗口的起始位置,那么如何遍历剩下的终止位置? + +此时难免再次陷入 暴力解法的怪圈。 + +所以 只用一个for循环,那么这个循环的索引,一定是表示 滑动窗口的终止位置。 + +那么问题来了, 滑动窗口的起始位置如何移动呢? + 这里还是以题目中的示例来举例,s=7, 数组是 2,3,1,2,4,3,来看一下查找的过程:  @@ -74,7 +91,7 @@ public: 窗口的起始位置如何移动:如果当前窗口的值大于s了,窗口就要向前移动了(也就是该缩小了)。 -窗口的结束位置如何移动:窗口的结束位置就是遍历数组的指针,窗口的起始位置设置为数组的起始位置就可以了。 +窗口的结束位置如何移动:窗口的结束位置就是遍历数组的指针,也就是for循环里的索引。 解题的关键在于 窗口的起始位置如何移动,如图所示: @@ -107,8 +124,8 @@ public: }; ``` -时间复杂度:O(n) -空间复杂度:O(1) +* 时间复杂度:O(n) +* 空间复杂度:O(1) **一些录友会疑惑为什么时间复杂度是O(n)**。 diff --git a/problems/0349.两个数组的交集.md b/problems/0349.两个数组的交集.md index f7dab3d7..4fbdd414 100644 --- a/problems/0349.两个数组的交集.md +++ b/problems/0349.两个数组的交集.md @@ -356,6 +356,8 @@ object Solution { } } +``` + C#: ```csharp diff --git a/problems/0383.赎金信.md b/problems/0383.赎金信.md index 75dafb72..9c3dda8c 100644 --- a/problems/0383.赎金信.md +++ b/problems/0383.赎金信.md @@ -425,6 +425,7 @@ object Solution { true } } +``` C#: diff --git a/problems/0454.四数相加II.md b/problems/0454.四数相加II.md index bfdee26e..726fdb15 100644 --- a/problems/0454.四数相加II.md +++ b/problems/0454.四数相加II.md @@ -354,6 +354,7 @@ object Solution { res } } +``` C#: ```csharp diff --git a/problems/qita/server.md b/problems/qita/server.md index 16995d70..1d7a1d6b 100644 --- a/problems/qita/server.md +++ b/problems/qita/server.md @@ -1,6 +1,9 @@ # 一台服务器有什么用! +* [阿里云活动期间服务器购买](https://www.aliyun.com/minisite/goods?taskCode=shareNew2205&recordId=3641992&userCode=roof0wob) +* [腾讯云活动期间服务器购买](https://curl.qcloud.com/EiaMXllu) + 但在组织这场活动的时候,了解到大家都有一个共同的问题: **这个服务器究竟有啥用??** 这真是一个好问题,而且我一句两句还说不清楚,所以就专门发文来讲一讲。