Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 65efa57

Browse files
Merge pull request youngyangyang04#940 from Leetion07/master
修改网页编程素养部分的一些吹毛求疵,添加此部分修改的具体内容
2 parents 0df748c + 5fe70ed commit 65efa57

File tree

4 files changed

+51
-6
lines changed

4 files changed

+51
-6
lines changed

problems/前序/ACM模式如何构建二叉树.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,21 @@
4545

4646
![](https://code-thinking-1253855093.file.myqcloud.com/pics/20210914223147.png)
4747

48-
那么此时大家是不是应该知道了,数组如何转化成 二叉树了。**如果父节点的数组下标是i,那么它的左孩子下标就是i * 2 + 1,右孩子下标就是 i * 2 + 2**
48+
那么此时大家是不是应该知道了,数组如何转化成 二叉树了。**如果父节点的数组下标是i,那么它的左孩子下标就是i * 2 + 1,右孩子下标就是 i * 2 + 2**。计算过程为:
49+
50+
如果父节点在第$k$层,第$m,m \in [0,2^k]$个节点,则其左孩子所在的位置必然为$k+1$层,第$2*(m-1)+1$个节点。
51+
52+
- 计算父节点在数组中的索引:
53+
$$
54+
index_{father}=(\sum_{i=0}^{i=k-1}2^i)+m-1=2^k-1+m-1
55+
$$
56+
57+
- 计算左子节点在数组的索引:
58+
$$
59+
index_{left}=(\sum_{i=0}^{i=k}2^i)+2*m-1-1=2^{k+1}+2m-3
60+
$$
61+
62+
- 故左孩子的下表为$index_{left}=index_{father}\times2+1$,同理可得到右子孩子的索引关系。也可以直接在左子孩子的基础上`+1`
4963

5064
那么这里又有同学疑惑了,这些我都懂了,但我还是不知道 应该 怎么构造。
5165

problems/前序/代码风格.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
最近看了很多录友在[leetcode-master](https://mp.weixin.qq.com/s/wZRTrA9Rbvgq1yEkSw4vfQ)上提交的代码,发现很多录友的代码其实并不规范,这一点平时在交流群和知识星球里也能看出来。
1515

16-
很多录友对代码规范应该不甚了解,代码看起来并不舒服。
16+
很多录友对代码规范应该了解得不多,代码看起来并不舒服。
1717

1818
所以呢,我给大家讲一讲代码规范,我主要以C++代码为例。
1919

@@ -27,7 +27,7 @@
2727

2828
现在一些小公司,甚至大公司里的某些技术团队也不注重代码规范,赶进度撸出功能就完事,这种情况就要分两方面看:
2929

30-
* 第一种情况:这个项目在业务上具有巨大潜力,需要抢占市场,只要先站住市场就能赚到钱,每年年终好几十万,那项目前期还关心啥代码风格,赶进度把功能撸出来,赚钱就完事了,例如12年的微信,15年的王者荣耀。这些项目都是后期在不断优化的
30+
* 第一种情况:这个项目在业务上具有巨大潜力,需要抢占市场,只要先站住市场就能赚到钱,每年年终好几十万,那项目前期还关心啥代码风格,赶进度把功能撸出来,赚钱就完事了,例如12年的微信,15年的王者荣耀。这些项目都是后期再不断优化的
3131

3232
* 第二种情况:这个项目没赚到钱,半死不活的,代码还没有设计也没有规范,这样对技术人员的伤害就非常大了。
3333

@@ -39,7 +39,7 @@
3939

4040
这里我简单说一说规范问题。
4141

42-
**权威的C++规范以Google为主**,我给大家下载了一份中文版本,在公众号「代码随想录」后台回复:googlec++编程规范,就可以领取。
42+
**权威的C++规范以Google为主**,我给大家下载了一份中文版本,在公众号「代码随想录」后台回复:googlec++编程规范,就可以领取。(涉及到微信后台的回复,没更改)
4343

4444
**具体的规范要以自己团队风格为主**,融入团队才是最重要的。
4545

problems/前序/力扣上的代码想在本地编译运行?.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313

1414
然后录友就问了:如何打日志呢?
1515

16-
其实在力扣上打日志也挺方便的,我一般调试就是直接在力扣上打日志,偶尔需要把代码粘到本例来运行添加日志debug一下
16+
其实在力扣上打日志也挺方便的,我一般调试就是直接在力扣上打日志,偶尔需要把代码粘到本地来运行添加日志debug一下
1717

1818
在力扣上直接打日志,这个就不用讲,C++的话想打啥直接cout啥就可以了。
1919

20-
我来说一说力扣代码如何在本题运行
20+
我来说一说力扣代码如何在本地运行
2121

2222
毕竟我们天天用力扣刷题,也应该知道力扣上的代码如何在本地编译运行。
2323

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
## 代码风格
2+
3+
- `不甚了解`是不能更了解的意思,这个地方应该使用存疑。
4+
- `后期在不断优化`,'在'应为'再'。
5+
- `googlec++编程规范`,Google拼写错误
6+
7+
## 代码本地编译
8+
9+
- `粘到本例来运行`存疑,应为本地
10+
- `本题运行`存疑,应为本地
11+
12+
## ACM二叉树
13+
14+
- 左孩子和右孩子的下标不太好理解。我给出证明过程:
15+
16+
如果父节点在第$k$层,第$m,m \in [0,2^k]$个节点,则其左孩子所在的位置必然为$k+1$层,第$2*(m-1)+1$个节点。
17+
18+
- 计算父节点在数组中的索引:
19+
$$
20+
index_{father}=(\sum_{i=0}^{i=k-1}2^i)+m-1=2^k-1+m-1
21+
$$
22+
23+
- 计算左子节点在数组的索引:
24+
$$
25+
index_{left}=(\sum_{i=0}^{i=k}2^i)+2*m-1-1=2^{k+1}+2m-3
26+
$$
27+
28+
- 故左孩子的下表为$index_{left}=index_{father}\times2+1$,同理可得到右子孩子的索引关系。也可以直接在左子孩子的基础上`+1`
29+
30+
31+

0 commit comments

Comments
 (0)