This commit is contained in:
youngyangyang04
2022-03-31 15:09:10 +08:00
parent 77aa72b984
commit 6259a0e317
45 changed files with 210 additions and 210 deletions

View File

@@ -20,7 +20,7 @@
## 暴力解法
这道题目暴力解法当然是 两个for循环然后不断的寻找符合条件的子序列时间复杂度很明显是$O(n^2)$
这道题目暴力解法当然是 两个for循环然后不断的寻找符合条件的子序列时间复杂度很明显是O(n^2)。
代码如下:
@@ -47,8 +47,8 @@ public:
}
};
```
时间复杂度:$O(n^2)$
空间复杂度:$O(1)$
时间复杂度O(n^2)
空间复杂度O(1)
## 滑动窗口
@@ -80,7 +80,7 @@ public:
![leetcode_209](https://img-blog.csdnimg.cn/20210312160441942.png)
可以发现**滑动窗口的精妙之处在于根据当前子序列和大小的情况,不断调节子序列的起始位置。从而将$O(n^2)$的暴力解法降为$O(n)$。**
可以发现**滑动窗口的精妙之处在于根据当前子序列和大小的情况不断调节子序列的起始位置。从而将O(n^2)暴力解法降为O(n)。**
C++代码如下:
@@ -107,12 +107,12 @@ public:
};
```
时间复杂度:$O(n)$
空间复杂度:$O(1)$
时间复杂度O(n)
空间复杂度O(1)
**一些录友会疑惑为什么时间复杂度是$O(n)$**
**一些录友会疑惑为什么时间复杂度是O(n)**
不要以为for里放一个while就以为是$O(n^2)$啊, 主要是看每一个元素被操作的次数,每个元素在滑动窗后进来操作一次,出去操作一次,每个元素都是被被操作两次,所以时间复杂度是 2 × n 也就是$O(n)$
不要以为for里放一个while就以为是O(n^2)啊, 主要是看每一个元素被操作的次数,每个元素在滑动窗后进来操作一次,出去操作一次,每个元素都是被被操作两次,所以时间复杂度是 2 × n 也就是O(n)。
## 相关题目推荐