修改网页编程素养部分的一些吹毛求疵,添加此部分修改的具体内容

This commit is contained in:
lixiyin_lab
2021-12-10 17:11:59 +08:00
parent 94e5dea6f0
commit 5fe70ed38a
4 changed files with 51 additions and 6 deletions

View File

@ -45,7 +45,21 @@
![](https://code-thinking-1253855093.file.myqcloud.com/pics/20210914223147.png)
那么此时大家是不是应该知道了,数组如何转化成 二叉树了。**如果父节点的数组下标是i那么它的左孩子下标就是i * 2 + 1右孩子下标就是 i * 2 + 2**。
那么此时大家是不是应该知道了,数组如何转化成 二叉树了。**如果父节点的数组下标是i那么它的左孩子下标就是i * 2 + 1右孩子下标就是 i * 2 + 2**。计算过程为:
如果父节点在第$k$层,第$m,m \in [0,2^k]$个节点,则其左孩子所在的位置必然为$k+1$层,第$2*(m-1)+1$个节点。
- 计算父节点在数组中的索引:
$$
index_{father}=(\sum_{i=0}^{i=k-1}2^i)+m-1=2^k-1+m-1
$$
- 计算左子节点在数组的索引:
$$
index_{left}=(\sum_{i=0}^{i=k}2^i)+2*m-1-1=2^{k+1}+2m-3
$$
- 故左孩子的下表为$index_{left}=index_{father}\times2+1$,同理可得到右子孩子的索引关系。也可以直接在左子孩子的基础上`+1`
那么这里又有同学疑惑了,这些我都懂了,但我还是不知道 应该 怎么构造。

View File

@ -13,7 +13,7 @@
最近看了很多录友在[leetcode-master](https://mp.weixin.qq.com/s/wZRTrA9Rbvgq1yEkSw4vfQ)上提交的代码,发现很多录友的代码其实并不规范,这一点平时在交流群和知识星球里也能看出来。
很多录友对代码规范应该不甚了解,代码看起来并不舒服。
很多录友对代码规范应该了解得不多,代码看起来并不舒服。
所以呢我给大家讲一讲代码规范我主要以C++代码为例。
@ -27,7 +27,7 @@
现在一些小公司,甚至大公司里的某些技术团队也不注重代码规范,赶进度撸出功能就完事,这种情况就要分两方面看:
* 第一种情况这个项目在业务上具有巨大潜力需要抢占市场只要先站住市场就能赚到钱每年年终好几十万那项目前期还关心啥代码风格赶进度把功能撸出来赚钱就完事了例如12年的微信15年的王者荣耀。这些项目都是后期不断优化的。
* 第一种情况这个项目在业务上具有巨大潜力需要抢占市场只要先站住市场就能赚到钱每年年终好几十万那项目前期还关心啥代码风格赶进度把功能撸出来赚钱就完事了例如12年的微信15年的王者荣耀。这些项目都是后期不断优化的。
* 第二种情况:这个项目没赚到钱,半死不活的,代码还没有设计也没有规范,这样对技术人员的伤害就非常大了。
@ -39,7 +39,7 @@
这里我简单说一说规范问题。
**权威的C++规范以Google为主**我给大家下载了一份中文版本在公众号「代码随想录」后台回复googlec++编程规范,就可以领取。
**权威的C++规范以Google为主**我给大家下载了一份中文版本在公众号「代码随想录」后台回复googlec++编程规范,就可以领取。(涉及到微信后台的回复,没更改)
**具体的规范要以自己团队风格为主**,融入团队才是最重要的。

View File

@ -13,11 +13,11 @@
然后录友就问了:如何打日志呢?
其实在力扣上打日志也挺方便的,我一般调试就是直接在力扣上打日志,偶尔需要把代码粘到本来运行添加日志debug一下。
其实在力扣上打日志也挺方便的,我一般调试就是直接在力扣上打日志,偶尔需要把代码粘到本来运行添加日志debug一下。
在力扣上直接打日志这个就不用讲C++的话想打啥直接cout啥就可以了。
我来说一说力扣代码如何在本运行。
我来说一说力扣代码如何在本运行。
毕竟我们天天用力扣刷题,也应该知道力扣上的代码如何在本地编译运行。

View File

@ -0,0 +1,31 @@
## 代码风格
- `不甚了解`是不能更了解的意思,这个地方应该使用存疑。
- `后期在不断优化`'在'应为'再'。
- `googlec++编程规范`,Google拼写错误
## 代码本地编译
- `粘到本例来运行`存疑,应为本地
- `本题运行`存疑,应为本地
## ACM二叉树
- 左孩子和右孩子的下标不太好理解。我给出证明过程:
如果父节点在第$k$层,第$m,m \in [0,2^k]$个节点,则其左孩子所在的位置必然为$k+1$层,第$2*(m-1)+1$个节点。
- 计算父节点在数组中的索引:
$$
index_{father}=(\sum_{i=0}^{i=k-1}2^i)+m-1=2^k-1+m-1
$$
- 计算左子节点在数组的索引:
$$
index_{left}=(\sum_{i=0}^{i=k}2^i)+2*m-1-1=2^{k+1}+2m-3
$$
- 故左孩子的下表为$index_{left}=index_{father}\times2+1$,同理可得到右子孩子的索引关系。也可以直接在左子孩子的基础上`+1`