优化排版,把复杂度标记为公式

This commit is contained in:
bqlin
2021-12-10 20:07:53 +08:00
parent 973582cd7e
commit 90638af21a
96 changed files with 462 additions and 449 deletions

View File

@@ -67,8 +67,8 @@
可以使用暴力解法,通过这道题目,如果追求更优的算法,建议试一试用二分法,来解决这道题目
暴力解法时间复杂度O(n)
二分法时间复杂度O(logn)
* 暴力解法时间复杂度:$O(n)$
* 二分法时间复杂度:$O(\log n)$
在这道题目中我们讲到了**循环不变量原则**,只有在循环中坚持对区间的定义,才能清楚的把握循环中的各种细节。
@@ -81,8 +81,8 @@
双指针法(快慢指针法):**通过一个快指针和慢指针在一个for循环下完成两个for循环的工作。**
暴力解法时间复杂度O(n^2)
双指针时间复杂度O(n)
* 暴力解法时间复杂度:$O(n^2)$
* 双指针时间复杂度:$O(n)$
这道题目迷惑了不少同学,纠结于数组中的元素为什么不能删除,主要是因为以下两点:
@@ -97,12 +97,12 @@
本题介绍了数组操作中的另一个重要思想:滑动窗口。
暴力解法时间复杂度O(n^2)
滑动窗口时间复杂度O(n)
* 暴力解法时间复杂度:$O(n^2)$
* 滑动窗口时间复杂度:$O(n)$
本题中,主要要理解滑动窗口如何移动 窗口起始位置,达到动态更新窗口大小的,从而得出长度最小的符合条件的长度。
**滑动窗口的精妙之处在于根据当前子序列和大小的情况不断调节子序列的起始位置。从而将O(n^2)的暴力解法降为O(n)。**
**滑动窗口的精妙之处在于根据当前子序列和大小的情况,不断调节子序列的起始位置。从而将$O(n^2)$的暴力解法降为$O(n)$。**
如果没有接触过这一类的方法,很难想到类似的解题思路,滑动窗口方法还是很巧妙的。
@@ -129,19 +129,5 @@
最后,大家周末愉快!
## 其他语言版本
Java
Python
Go
-----------------------
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>