算法练习demo
- 特性: 先入后出
- 递归的概念:递归就是方法自己自己,每次调用时传入的不同的变量。递归有助于编程者解决复杂的问题,同时可以让代码变得更加简洁。
-
哪些问题会需要用到递归呢?
1 一个问题可以分解为几个子问题的解。
2 这个问题与分解之后的子问题,吃了数据规模不一样,求解思路完全一样。
3 存在递归的终止条件,不可能一直递归下去死循环。
1 写递归代码的关键就是找到如何将大问题分解为小问题的规律,并且基于此写出递推公式,然后再推敲终止条件,最后将递推公式和终止条件翻译成代码。
2 编写递归代码的关键是,只要遇到递归,我们就把它抽象成一个递推公式,不用想一层层的调用关系,不要试图用人脑去分解递归的每个步骤
1 执行一个方式时,就创建一个新的受保护独立空间(栈空间)
2 方法的局部变量如何是基本类型的,不会相互影响,如果是引用类型的就会共享此变量。
3 递归必须向退出的条件逼近,否则就会出现栈内存溢出
4 当一个方法执行完毕。或者遇到return就会返回准守谁调用就将结果返回给谁,同事当方法执行完毕该方法也就执行完毕。