Format code and docs.

pull/881/head
krahets 1 year ago
parent d639d946f0
commit 17252b53a9

@ -74,7 +74,8 @@ function editDistanceDP(s, t) {
dp[i][j] = dp[i - 1][j - 1];
} else {
// 最少编辑步数 = 插入、删除、替换这三种操作的最少编辑步数 + 1
dp[i][j] = Math.min(dp[i][j - 1], dp[i - 1][j], dp[i - 1][j - 1]) + 1
dp[i][j] =
Math.min(dp[i][j - 1], dp[i - 1][j], dp[i - 1][j - 1]) + 1;
}
}
}

@ -184,16 +184,8 @@ if __name__ == "__main__":
# 插入节点
# 请关注插入节点后AVL 树是如何保持平衡的
test_insert(avl_tree, 1)
test_insert(avl_tree, 2)
test_insert(avl_tree, 3)
test_insert(avl_tree, 4)
test_insert(avl_tree, 5)
test_insert(avl_tree, 8)
test_insert(avl_tree, 7)
test_insert(avl_tree, 9)
test_insert(avl_tree, 10)
test_insert(avl_tree, 6)
for val in [1, 2, 3, 4, 5, 8, 7, 9, 10, 6]:
test_insert(avl_tree, val)
# 插入重复节点
test_insert(avl_tree, 7)

@ -82,7 +82,8 @@ function editDistanceDP(s: string, t: string): number {
dp[i][j] = dp[i - 1][j - 1];
} else {
// 最少编辑步数 = 插入、删除、替换这三种操作的最少编辑步数 + 1
dp[i][j] = Math.min(dp[i][j - 1], dp[i - 1][j], dp[i - 1][j - 1]) + 1
dp[i][j] =
Math.min(dp[i][j - 1], dp[i - 1][j], dp[i - 1][j - 1]) + 1;
}
}
}

@ -2,7 +2,7 @@
!!! question
给定一个二叉树的前序遍历 `preorder` 和中序遍历 `inorder` ,请从中构建二叉树,返回二叉树的根节点。
给定一个二叉树的前序遍历 `preorder` 和中序遍历 `inorder` ,请从中构建二叉树,返回二叉树的根节点。假设二叉树中没有值重复的节点。
![构建二叉树的示例数据](build_binary_tree_problem.assets/build_tree_example.png)
@ -44,7 +44,7 @@
<p align="center"><id> &nbsp; 根节点和子树在前序和中序遍历中的索引 </p>
| | 根节点在 `preorder` 中的索引 | 子树在 `inorder` 中的索引区间 |
| ------ | -------------------------------- | ----------------------------- |
| ------ | ---------------------------- | ----------------------------- |
| 当前树 | $i$ | $[l, r]$ |
| 左子树 | $i + 1$ | $[l, m-1]$ |
| 右子树 | $i + 1 + (m - l)$ | $[m+1, r]$ |

@ -77,7 +77,7 @@ $$
<p align="center"><id> &nbsp; 现实生活中常见的图 </p>
| | 顶点 | 边 | 图计算问题 |
| ------ | ---- | --------------- | ------------ |
| -------- | ---- | -------------------- | ------------ |
| 社交网络 | 用户 | 好友关系 | 潜在好友推荐 |
| 地铁线路 | 站点 | 站点间的连通性 | 最短路线推荐 |
| 太阳系 | 星体 | 星体间的万有引力作用 | 行星轨道计算 |

@ -24,7 +24,7 @@
<p align="center"><id> &nbsp; 堆的操作效率 </p>
| 方法名 | 描述 | 时间复杂度 |
| --------- | ------------------------------------------ | ----------- |
| --------- | -------------------------------------------- | ----------- |
| push() | 元素入堆 | $O(\log n)$ |
| pop() | 堆顶元素出堆 | $O(\log n)$ |
| peek() | 访问堆顶元素(大 / 小顶堆分别为最大 / 小值) | $O(1)$ |

@ -11,7 +11,7 @@
<p align="center"><id> &nbsp; 双向队列操作效率 </p>
| 方法名 | 描述 | 时间复杂度 |
| ----------- | -------------- | ---------- |
| ----------- | ---------------- | ---------- |
| pushFirst() | 将元素添加至队首 | $O(1)$ |
| pushLast() | 将元素添加至队尾 | $O(1)$ |
| popFirst() | 删除队首元素 | $O(1)$ |

@ -13,7 +13,7 @@
<p align="center"><id> &nbsp; 队列操作效率 </p>
| 方法名 | 描述 | 时间复杂度 |
| --------- | -------------------------- | -------- |
| ------ | ---------------------------- | ---------- |
| push() | 元素入队,即将元素添加至队尾 | $O(1)$ |
| pop() | 队首元素出队 | $O(1)$ |
| peek() | 访问队首元素 | $O(1)$ |

@ -15,7 +15,7 @@
<p align="center"><id> &nbsp; 栈的操作效率 </p>
| 方法 | 描述 | 时间复杂度 |
| --------- | ---------------------- | ---------- |
| ------ | ---------------------- | ---------- |
| push() | 元素入栈(添加至栈顶) | $O(1)$ |
| pop() | 栈顶元素出栈 | $O(1)$ |
| peek() | 访问栈顶元素 | $O(1)$ |

@ -296,7 +296,7 @@ AVL 树的特点在于“旋转”操作,它能够在不影响二叉树的中
<p align="center"><id> &nbsp; 四种旋转情况的选择条件 </p>
| 失衡节点的平衡因子 | 子节点的平衡因子 | 应采用的旋转方法 |
| ---------------- | ---------------- | ---------------- |
| ------------------- | ---------------- | ---------------- |
| $> 1$ (即左偏树) | $\geq 0$ | 右旋 |
| $> 1$ (即左偏树) | $<0$ | |
| $< -1$ (即右偏树) | $\leq 0$ | 左旋 |

Loading…
Cancel
Save