Unverified Commit 73deaf06 authored by Shuhao Zhang's avatar Shuhao Zhang Committed by GitHub
Browse files

Merge branch 'master' into master

parents f7572a4a eb5f47e8
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -3,12 +3,13 @@
    "listItemIndent": "tab"
  },
  "plugins": [
    "remark-pangu",
    "remark-copywriting-correct",
    "remark-preset-lint-markdown-style-guide",
    ["remark-lint-code-block-style", false],
    ["remark-lint-maximum-line-length", false],
    ["remark-lint-ordered-list-marker-value", "ordered"],
    "remark-math",
    "remark-math-space",
    "remark-lint-final-newline",
    "remark-lint-no-tabs",
    "remark-clang-format"
+2 −2
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@

介绍分治之前,首先要弄清楚递归这个概念。

递归是什么呢?举个简单的例子:从前有座山,山上有座庙,庙里有个老和尚,老和尚给小和尚讲故事:“从前有座山,山上有座庙,庙里有个老和尚,老和尚给小和尚讲故事:‘从前有座山......’” 这个故事与递归算法有着异曲同工之妙。
递归是什么呢?举个简单的例子:从前有座山,山上有座庙,庙里有个老和尚,老和尚给小和尚讲故事:“从前有座山,山上有座庙,庙里有个老和尚,老和尚给小和尚讲故事:‘从前有座山……’”这个故事与递归算法有着异曲同工之妙。

递归的基本思想是某个函数直接或者间接地调用自身,这样就把原问题的求解转换为许多性质相同但是规模更小的子问题。我们只需要关注如何把原问题划分成符合条件的子问题,而不需要去研究这个子问题是如何被解决的。

+6 −7
Original line number Diff line number Diff line
@@ -6,8 +6,7 @@

## 递归

递归的方法是把表达式拆分成如图所示的表达式树,然后在树结构上自底向上进行运算。
![](./images/bet.png)
递归的方法是把表达式拆分成如图所示的表达式树,然后在树结构上自底向上进行运算。![](./images/bet.png)

表达式树上进行[树的遍历](/graph/traverse/#dfs_3)可以得到不同类型的表达式

+9 −9
Original line number Diff line number Diff line
@@ -83,7 +83,7 @@ ofstream fout("data.out");
// data.out 就是输出文件的文件名,和可执行文件在同一目录下
```

关闭标准输入 \\ 输出流
关闭标准输入/输出流

```cpp
fin.close();
+3 −3
Original line number Diff line number Diff line
@@ -8,6 +8,6 @@

1.  在动手写代码之前,在草纸上尽可能的写好要实现的流程
2.  在代码中,尽量把每个部分模块化、写成函数、结构体或类
3.  对于一些可能重复用到的概念,可以统一转化,方便处理如,某题给你 "YY-MM-DD 时: 分" 把它扔到一个函数处理成秒,会减少概念混淆
3.  对于一些可能重复用到的概念,可以统一转化,方便处理如,某题给你 "YY-MM-DD 时分" 把它扔到一个函数处理成秒,会减少概念混淆
4.  调试时分块调试,模块化的好处就是可以方便的单独调某一部分
5.  写代码的时候一定要思路清晰,不要想到什么写什么,要按照落在纸上的步骤写。
Loading