Skip to content

Commit 03f5648

Browse files
马miao皮马miao皮
马miao皮
authored and
马miao皮
committed
fix bug: 修复md文件加粗渲染问题
1 parent 6161119 commit 03f5648

File tree

39 files changed

+59
-59
lines changed

39 files changed

+59
-59
lines changed

website/0.01.指导学习/021.md

+7-7
Original file line numberDiff line numberDiff line change
@@ -86,14 +86,14 @@ date: 2020-07-01
8686

8787
- **递归,防止死循环和内存泄露**。由于递归需要堆栈,**所以内存消耗要比非递归代码要大很多**。而且,如果递归深度太大,可能系统撑不住。内存会存在突然飙升的情况。如果是数据错误导致无限循环,那问题就大了。所以这方面问题在开发的时候需要注意。
8888
- **访问数组越界**,绝大多数的数组越界,根本原因在于对定义混淆。比如定义的时候想的是“以0起始”,但是写的时候写成了“以1起始”。究其根本,数组越界的问题,其实是对区间把控的问题。
89-
- **区间表意不明。**大部分的语言中,数组都以0为起始元素,但是人的思维习惯于以1为起始。那为什么数组要以0为起始元素,历史原因有很多,咱不说。对咱们有用的,3个。第一,因为我们选择左闭右开区间,比如 [0,n),我们可以很容易通过 n-0 得到数组中元素个数。这点大家要形成条件发射,看到数组,明确其个数。第二,闭区间很难去表示一个空数组,不信你试试,非常难受。第三,左闭右开的区间,迭代器只需要最少的操作符。可以让代码写起来非常的舒服,STL的算法和容器中基本都是如此。
90-
- **差一问题(栅栏错误)。**建造一条直栅栏(即不围圈),长30米、每条栅栏柱间相隔3米,需要多少条栅栏柱? 求数组 A[i]到 A[j] 的平均值,A[i] 到 A[j] 的和应该除以多少,是 j-i+1,还是 j-i?二分法中的 while 条件,到底是用 <= 还是 < ?这些都是差一问题,这类问题如何解决。**利用最小的的输入值测试代码的执行过程,长期反复,达到条件反射**。这个过程一定是在大量的题目练习中掌握的,如果你到目前还在纠结这个问题,请先扣心自问,是否刷过至少200道算法题。如果没有,请不要纠结,干就对了。如果有,来找我。
89+
- **区间表意不明。** 大部分的语言中,数组都以0为起始元素,但是人的思维习惯于以1为起始。那为什么数组要以0为起始元素,历史原因有很多,咱不说。对咱们有用的,3个。第一,因为我们选择左闭右开区间,比如 [0,n),我们可以很容易通过 n-0 得到数组中元素个数。这点大家要形成条件发射,看到数组,明确其个数。第二,闭区间很难去表示一个空数组,不信你试试,非常难受。第三,左闭右开的区间,迭代器只需要最少的操作符。可以让代码写起来非常的舒服,STL的算法和容器中基本都是如此。
90+
- **差一问题(栅栏错误)。** 建造一条直栅栏(即不围圈),长30米、每条栅栏柱间相隔3米,需要多少条栅栏柱? 求数组 A[i]到 A[j] 的平均值,A[i] 到 A[j] 的和应该除以多少,是 j-i+1,还是 j-i?二分法中的 while 条件,到底是用 <= 还是 < ?这些都是差一问题,这类问题如何解决。**利用最小的的输入值测试代码的执行过程,长期反复,达到条件反射**。这个过程一定是在大量的题目练习中掌握的,如果你到目前还在纠结这个问题,请先扣心自问,是否刷过至少200道算法题。如果没有,请不要纠结,干就对了。如果有,来找我。
9191
- **内存溢出问题**。分为两种,一种是因为运算超出变量取值范围发生的内存溢出,比如二分法中的mid,就要使用 left+(right-left)>>1。另一种就是因为代码不严谨,比如递归没有退出条件,while死循环,等等导致内存溢出。
92-
- **初学者定义问题。**比如统计26个字母出现的次数,初学者会用hashmap,其实这种已知值范围的,定义成数组就可以了。其他类似数字0-9,每个月的天数,都是一样的
93-
- **写一半忘记题意。**这个根本原因还是因为思维脉络不清晰导致的,有时候初学者还会遇到一个问题。定义一个函数,比如叫做 juge() 返回 bool 值,本来应该是判断某条件成立时返回true,但是用的时候却以为,在条件不成立的时候返回true,最终导致结果错误。
94-
- **变量名错误。**不管是和方法参数中的变量名称冲突,还是因为本身表意不明,最终出现赋值错误,或者编译不通过。
95-
- **运算优先级错误。**比如位运算,各个语言中的优先级定义是略有不同的。有时候需要加括号,有时候不需要加。
96-
- **特殊值的处理。**一些找规律的题目,往往在等于0,等于1的时候,规律和其他的数不同,所以这种题目,需要对这种特殊值进行特殊处理。
92+
- **初学者定义问题。** 比如统计26个字母出现的次数,初学者会用hashmap,其实这种已知值范围的,定义成数组就可以了。其他类似数字0-9,每个月的天数,都是一样的
93+
- **写一半忘记题意。** 这个根本原因还是因为思维脉络不清晰导致的,有时候初学者还会遇到一个问题。定义一个函数,比如叫做 juge() 返回 bool 值,本来应该是判断某条件成立时返回true,但是用的时候却以为,在条件不成立的时候返回true,最终导致结果错误。
94+
- **变量名错误。** 不管是和方法参数中的变量名称冲突,还是因为本身表意不明,最终出现赋值错误,或者编译不通过。
95+
- **运算优先级错误。** 比如位运算,各个语言中的优先级定义是略有不同的。有时候需要加括号,有时候不需要加。
96+
- **特殊值的处理。** 一些找规律的题目,往往在等于0,等于1的时候,规律和其他的数不同,所以这种题目,需要对这种特殊值进行特殊处理。
9797

9898
<br/>
9999

website/1.0.数组系列/001.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,11 @@ func intersect(nums1 []int, nums2 []int) []int {
7676

7777
解题步骤如下:
7878

79-
<1>设定两个为0的指针,**比较两个指针的元素是否相等。**如果指针的元素相等,我们将两个指针一起向后移动,并且将相等的元素放入空白数组。下图中我们的指针分别指向第一个元素,判断元素相等之后,将相同元素放到空白的数组。
79+
<1>设定两个为0的指针,**比较两个指针的元素是否相等。** 如果指针的元素相等,我们将两个指针一起向后移动,并且将相等的元素放入空白数组。下图中我们的指针分别指向第一个元素,判断元素相等之后,将相同元素放到空白的数组。
8080

8181
![PNG](./001/2.png)
8282

83-
<2>如果两个指针的元素不相等,**我们将小的一个指针后移。**图中我们指针移到下一个元素,判断不相等之后,将元素小的指针向后移动,继续进行判断。
83+
<2>如果两个指针的元素不相等,**我们将小的一个指针后移。** 图中我们指针移到下一个元素,判断不相等之后,将元素小的指针向后移动,继续进行判断。
8484

8585
![PNG](./001/3.png)
8686

website/1.0.数组系列/009.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ date: 2020-07-08
1313

1414
| 第6题:Z 字形变换 |
1515
| ------------------------------------------------------------ |
16-
| 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 **"LEETCODEISHIRING" **行数为 3 时,排列如下: |
16+
| 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 **"LEETCODEISHIRING"** 行数为 3 时,排列如下: |
1717

1818
```
1919
L C I R

website/1.2.动态规划系列/203.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ title: 最长上升子序列(300)
2626
2727
## 02、题目图解
2828

29-
首先我们分析题目,要找的是**最长上升子序列**(Longest Increasing Subsequence,LIS)。因为题目中没有要求连续,所以**LIS可能是连续的,也可能是非连续的。**同时,**LIS符合可以从其子问题的最优解来进行构建**的条件。所以我们可以尝试用动态规划来进行求解。首先我们定义状态:
29+
首先我们分析题目,要找的是**最长上升子序列**(Longest Increasing Subsequence,LIS)。因为题目中没有要求连续,所以 **LIS可能是连续的,也可能是非连续的。** 同时,**LIS符合可以从其子问题的最优解来进行构建**的条件。所以我们可以尝试用动态规划来进行求解。首先我们定义状态:
3030

3131
<br/>
3232
> <center><b> dp[i] :表示以nums[i]结尾的最长上升子序列的长度 </b></center>

website/1.2.动态规划系列/204.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ title: 三角形最小路径和(120)
3030
3131
## 02、题目图解
3232

33-
首先我们分析题目,要找的是**三角形最小路径和,**这是个啥意思呢?假设我们有一个三角形:[[2], [3,4], [6,5,7]
33+
首先我们分析题目,要找的是**三角形最小路径和,** 这是个啥意思呢?假设我们有一个三角形:[[2], [3,4], [6,5,7]
3434

3535
[4,1,8,3]]
3636

website/1.2.动态规划系列/205.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ title: 最小路径和(64)
3232
3333
## 02、题目图解
3434

35-
首先我们分析题目,要找的是 **最小路径和,**这是个啥意思呢?假设我们有一个 m * n 的矩形 :[[1,3,1],[1,5,1],[4,2,1]]
35+
首先我们分析题目,要找的是 **最小路径和,** 这是个啥意思呢?假设我们有一个 m * n 的矩形 :[[1,3,1],[1,5,1],[4,2,1]]
3636

3737
<img src="./205/1.jpg" alt="PNG" style="zoom: 67%;" />
3838

website/1.3.字符串系列/302.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ s = "loveleetcode",
1818
返回 2.
1919
```
2020

21-
**注意事项:**您可以假定该字符串只包含小写字母。
21+
**注意事项:** 您可以假定该字符串只包含小写字母。
2222

23-
> <center><b>常考题目,建议自行思考 1-2 分钟先~<b></center>
23+
> <center><b>常考题目,建议自行思考 1-2 分钟先~</b></center>
2424
2525
## 02、题目图解
2626

@@ -34,7 +34,7 @@ s = "loveleetcode",
3434

3535
## 03、GO语言示例
3636

37-
根据以上分析,可以得到代码如下:
37+
根据以上分析,可以得到代码如下:
3838

3939
```go
4040
func firstUniqChar(s string) int {

website/1.3.字符串系列/304.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ func printNumbers(n int) []int {
126126

127127
<br/>
128128

129-
对于本题,我们该如何模拟一个 “最大的n位十进制数” 呢?其实也是一样的,**我们采用 char 数组进行存储**。而我们每次递增1,相当于进行一次**字符串相加**的运算。但是这里额外要说明的一点是,我把题解恢复成了原题的要求:**使用打印输出,而不是通过数组返回的形式。**毕竟返回数组的形式只是 leetcode 为了兼容平台测试而改编的。这里我就直接给出从剑指offer改编的题解了(JAVA):
129+
对于本题,我们该如何模拟一个 “最大的n位十进制数” 呢?其实也是一样的,**我们采用 char 数组进行存储**。而我们每次递增1,相当于进行一次**字符串相加**的运算。但是这里额外要说明的一点是,我把题解恢复成了原题的要求:**使用打印输出,而不是通过数组返回的形式。** 毕竟返回数组的形式只是 leetcode 为了兼容平台测试而改编的。这里我就直接给出从剑指offer改编的题解了(JAVA):
130130

131131
```java
132132
//java

website/1.3.字符串系列/305.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ date: 2020-07-10
1313
| ------------------------------------------------------------ |
1414
| 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 |
1515

16-
**说明:**本题中,我们将空字符串定义为有效的回文串。
16+
**说明:** 本题中,我们将空字符串定义为有效的回文串。
1717

1818
<br/>
1919

website/1.3.字符串系列/306.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ KMP 其实已经念念叨叨挺长时间了,一直没写的原因是我觉得
5555

5656
<img src="./306/6.jpg" alt="PNG" style="zoom: 50%;" />
5757

58-
假若我们目标串长度为m,模式串长度为n。模式串与目标串至少比较m次,又因其自身长度为n,所以理论的时间复杂度为**O(m\*n)。**但我们可以看到,**因为途中遇到不能匹配的字符时,就可以停止,并不需要完全对比(比如上图第2行)**。所以虽然理论时间复杂度为 **O(m\*n)** ,但其实大部分情况效率高很多。
58+
假若我们目标串长度为m,模式串长度为n。模式串与目标串至少比较m次,又因其自身长度为n,所以理论的时间复杂度为**O(m\*n)。** 但我们可以看到,**因为途中遇到不能匹配的字符时,就可以停止,并不需要完全对比(比如上图第2行)**。所以虽然理论时间复杂度为 **O(m\*n)** ,但其实大部分情况效率高很多。
5959

6060
<br/>
6161

@@ -131,7 +131,7 @@ func BFSearch(haystack string, needle string) int {
131131

132132
<img src="./306/18.jpg" alt="PNG" style="zoom: 50%;" />
133133

134-
我想到现在你已经知道怎么做了,来和我一起说。**因为前面的 B 匹配成功了,所以我们知道 B 不等于 A,所以我们可以跳过 B。**当然,跳过之后下一次的匹配直接失败了(A-D)。
134+
我想到现在你已经知道怎么做了,来和我一起说。**因为前面的 B 匹配成功了,所以我们知道 B 不等于 A,所以我们可以跳过 B。** 当然,跳过之后下一次的匹配直接失败了(A-D)。
135135

136136
<img src="./306/19.jpg" alt="PNG" style="zoom: 50%;" />
137137

@@ -213,7 +213,7 @@ func BFSearch(haystack string, needle string) int {
213213

214214
<img src="./306/29.jpg" alt="PNG" style="zoom: 67%;" />
215215

216-
为什么会出问题呢,我们说了,对 KMP 而言,**如果没有匹配成功,****目标串是不回溯的**。那如果目标串不回溯,如果模式串一直都是 0,是不是意味着这个算法就没办法继续进行下去?所以大神把这个 next匹配表 改了一下,把 0 位置处的 next表 值改为了 -1。
216+
为什么会出问题呢,我们说了,对 KMP 而言,**如果没有匹配成功,** **目标串是不回溯的**。那如果目标串不回溯,如果模式串一直都是 0,是不是意味着这个算法就没办法继续进行下去?所以大神把这个 next匹配表 改了一下,把 0 位置处的 next表 值改为了 -1。
217217

218218
<img src="./306/30.jpg" alt="PNG" style="zoom: 67%;" />
219219

@@ -349,7 +349,7 @@ func KmpSearch(haystack string, needle string, next []int) int {
349349

350350
<img src="./306/51.jpg" alt="PNG" style="zoom: 80%;" />
351351

352-
但是但是但是!!!并不是所有讲解 KMP 的地方都会给你提一提部分匹配表的概念,有的地方干脆就直接把这个 pmt 等同于 next 表使用。**这种属于错误讲解吗?其实不是的!**因为我上面也说了,next表 在最初始位置补 -1,或者甚至干脆把 pmt 的第一位补一个 -1 当作 next表,这都统统是可以的。**因为最关键的还是说你到时候怎么去使用!毕竟 next表 的定义也是人们给它赋予的!**
352+
但是但是但是!!!并不是所有讲解 KMP 的地方都会给你提一提部分匹配表的概念,有的地方干脆就直接把这个 pmt 等同于 next 表使用。**这种属于错误讲解吗?其实不是的!** 因为我上面也说了,next表 在最初始位置补 -1,或者甚至干脆把 pmt 的第一位补一个 -1 当作 next表,这都统统是可以的。**因为最关键的还是说你到时候怎么去使用!毕竟 next表 的定义也是人们给它赋予的!**
353353

354354
<br/>
355355

website/1.3.字符串系列/307.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ date: 2020-07-12
3131

3232
<br/>
3333

34-
**注意:**A 和 B 长度不超过 100。
34+
**注意:** A 和 B 长度不超过 100。
3535

3636
<br/>
3737

website/1.3.字符串系列/308.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ date: 2020-07-12
3232
输出: 5
3333
```
3434

35-
**说明:**一个单词是指仅由字母组成、不包含任何空格字符的 **最大子字符串**
35+
**说明:** 一个单词是指仅由字母组成、不包含任何空格字符的 **最大子字符串**
3636

3737
<br/>
3838

website/1.4.二叉树系列/401.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ title: 最大深度与DFS(104)
3030

3131
## 02、递归求解
3232

33-
我们知道,**每个节点的深度与它左右子树的深度有关,且等于其左右子树最大深度值加上 1 **即:
33+
我们知道,**每个节点的深度与它左右子树的深度有关,且等于其左右子树最大深度值加上 1 ** 即:
3434

3535
><center><b> maxDepth(root) = max(maxDepth(root.left), </b></center>
3636
>

website/1.4.二叉树系列/403.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ title: BST与其验证(98)
99

1010
<br/>
1111

12-
这里强调一下子树的概念:设T是有根树,a是T中的一个顶点,由**a以及a的所有后裔(后代)**导出的子图称为有向树T的子树。具体来说,**子树就是树的其中一个节点以及其下面的所有的节点**所构成的树。
12+
这里强调一下子树的概念:设T是有根树,a是T中的一个顶点,由**a以及a的所有后裔(后代)** 导出的子图称为有向树T的子树。具体来说,**子树就是树的其中一个节点以及其下面的所有的节点**所构成的树。
1313

1414
<br/>
1515

website/1.4.二叉树系列/407.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ date: 2020-06-11
1111

1212
<br/>
1313

14-
如果**二叉树中除了叶子结点,每个结点的度都为 2**,则此二叉树称为**满二叉树**。(**二叉树的度**代表**某个结点的孩子或者说直接后继的个数。**对于二叉树而言,1度是只有一个孩子或者说单子树,2度是有两个孩子或者说左右子树都有。)
14+
如果**二叉树中除了叶子结点,每个结点的度都为 2**,则此二叉树称为**满二叉树**。(**二叉树的度**代表**某个结点的孩子或者说直接后继的个数。** 对于二叉树而言,1度是只有一个孩子或者说单子树,2度是有两个孩子或者说左右子树都有。)
1515

1616
<br/>
1717

website/1.6.博弈论系列/602.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ date: 2020-06-14
3131

3232
## 02、直觉的缺陷
3333

34-
得到了结论,我们来思考背后的东西。在我们的直觉里有这样一个逻辑:**如果一个事物的各部分都分别大于另一个事物的各部分,那么这个事物大于另一个事物。**比如:我们的直觉告诉我们如果手术A在两组病人中都更好,那么在所有病人中也应该更好。
34+
得到了结论,我们来思考背后的东西。在我们的直觉里有这样一个逻辑:**如果一个事物的各部分都分别大于另一个事物的各部分,那么这个事物大于另一个事物。** 比如:我们的直觉告诉我们如果手术A在两组病人中都更好,那么在所有病人中也应该更好。
3535

3636
<br/>
3737

website/1.6.博弈论系列/604.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ date: 2020-06-14
3939

4040
<br/>
4141

42-
现在又继续加入了新的海盗!原来的1,2,3号,成为了现在的2,3,4号。这时候新的一号海盗洞悉了奥秘,知道了**如果自己死了,二号就可以获取全部的金币,**所以提出给三号和四号一人一个金币,一起投死2号。而与此同时,现在的3号和4号获取的要比三个人时多(三个人时自己获取不了任何金币),所以他们会同意这个方案!
42+
现在又继续加入了新的海盗!原来的1,2,3号,成为了现在的2,3,4号。这时候新的一号海盗洞悉了奥秘,知道了**如果自己死了,二号就可以获取全部的金币,** 所以提出给三号和四号一人一个金币,一起投死2号。而与此同时,现在的3号和4号获取的要比三个人时多(三个人时自己获取不了任何金币),所以他们会同意这个方案!
4343

4444
<br/>
4545

website/1.6.博弈论系列/606.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ date: 2020-07-05
4141

4242
<br/>
4343

44-
2、**身体酸碱度。**酸性体质容易疲惫,让人感觉到累。所以很多养生专家建议让身体处于碱性环境。前面这个,我觉得还是没问题的。但是养生专家同时也说:碱性环境下生孩子的几率会大一点。(这个我就搞不懂了??)
44+
2、**身体酸碱度。** 酸性体质容易疲惫,让人感觉到累。所以很多养生专家建议让身体处于碱性环境。前面这个,我觉得还是没问题的。但是养生专家同时也说:碱性环境下生孩子的几率会大一点。(这个我就搞不懂了??)
4545

4646
<img src="./606/2.jpg" alt="PNG" style="zoom: 50%;" />
4747

0 commit comments

Comments
 (0)