Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

fix bug: 修复md文件加粗渲染问题 #12

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
geekxh merged 1 commit into geekxh:master from rookieInn:master
Jul 28, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions website/0.01.指导学习/021.md
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -86,14 +86,14 @@ date: 2020年07月01日

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

<br/>

Expand Down
4 changes: 2 additions & 2 deletions website/1.0.数组系列/001.md
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -76,11 +76,11 @@ func intersect(nums1 []int, nums2 []int) []int {

解题步骤如下:

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

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

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

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

Expand Down
2 changes: 1 addition & 1 deletion website/1.0.数组系列/009.md
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ date: 2020年07月08日

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

```
L C I R
Expand Down
2 changes: 1 addition & 1 deletion website/1.2.动态规划系列/203.md
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ title: 最长上升子序列(300)

## 02、题目图解

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

<br/>
> <center><b> dp[i] :表示以nums[i]结尾的最长上升子序列的长度 </b></center>
Expand Down
2 changes: 1 addition & 1 deletion website/1.2.动态规划系列/204.md
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ title: 三角形最小路径和(120)

## 02、题目图解

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

[4,1,8,3]]

Expand Down
2 changes: 1 addition & 1 deletion website/1.2.动态规划系列/205.md
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ title: 最小路径和(64)

## 02、题目图解

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

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

Expand Down
6 changes: 3 additions & 3 deletions website/1.3.字符串系列/302.md
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ s = "loveleetcode",
返回 2.
```

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

> <center><b>常考题目,建议自行思考 1-2 分钟先〜<b></center>
> <center><b>常考题目,建议自行思考 1-2 分钟先〜</b></center>

## 02、题目图解

Expand All @@ -34,7 +34,7 @@ s = "loveleetcode",

## 03、GO语言示例

根据以上分析,可以得到代码如下:
根据以上分析,可以得到代码如下:

```go
func firstUniqChar(s string) int {
Expand Down
2 changes: 1 addition & 1 deletion website/1.3.字符串系列/304.md
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ func printNumbers(n int) []int {

<br/>

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

```java
//java
Expand Down
2 changes: 1 addition & 1 deletion website/1.3.字符串系列/305.md
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ date: 2020年07月10日
| ------------------------------------------------------------ |
| 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 |

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

<br/>

Expand Down
8 changes: 4 additions & 4 deletions website/1.3.字符串系列/306.md
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ KMP 其实已经念念叨叨挺长时间了,一直没写的原因是我觉得

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

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

<br/>

Expand Down Expand Up @@ -131,7 +131,7 @@ func BFSearch(haystack string, needle string) int {

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

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

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

Expand Down Expand Up @@ -213,7 +213,7 @@ func BFSearch(haystack string, needle string) int {

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

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

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

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

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

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

<br/>

Expand Down
2 changes: 1 addition & 1 deletion website/1.3.字符串系列/307.md
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ date: 2020年07月12日

<br/>

**注意:**A 和 B 长度不超过 100。
**注意:**A 和 B 长度不超过 100。

<br/>

Expand Down
2 changes: 1 addition & 1 deletion website/1.3.字符串系列/308.md
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ date: 2020年07月12日
输出: 5
```

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

<br/>

Expand Down
2 changes: 1 addition & 1 deletion website/1.4.二叉树系列/401.md
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ title: 最大深度与DFS(104)

## 02、递归求解

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

><center><b> maxDepth(root) = max(maxDepth(root.left), </b></center>
>
Expand Down
2 changes: 1 addition & 1 deletion website/1.4.二叉树系列/403.md
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ title: BST与其验证(98)

<br/>

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

<br/>

Expand Down
2 changes: 1 addition & 1 deletion website/1.4.二叉树系列/407.md
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ date: 2020年06月11日

<br/>

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

<br/>

Expand Down
2 changes: 1 addition & 1 deletion website/1.6.博弈论系列/602.md
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ date: 2020年06月14日

## 02、直觉的缺陷

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

<br/>

Expand Down
2 changes: 1 addition & 1 deletion website/1.6.博弈论系列/604.md
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ date: 2020年06月14日

<br/>

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

<br/>

Expand Down
2 changes: 1 addition & 1 deletion website/1.6.博弈论系列/606.md
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ date: 2020年07月05日

<br/>

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

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

Expand Down
Loading

AltStyle によって変換されたページ (->オリジナル) /