1.青铜挑战——一图理解递归
与之相关的问题有:
1.与树和二叉树相关的大部分问题
2.二分查找相关的问题
3.快速排序,归并排序相关的问题
4.所有回溯的问题
5.所有动态规划的问题
递归是我们算法进阶的基础,是必须要掌握的内容。
1、递归的特征
递归两个基本的特征:
1.执行时范围不断缩小,这样才能触底反弹。
2.终止判断在调用递归的前面
有些情况不一定是触底才开始反弹,而是达到某种要求就要停止,这样需要考虑的情况会比较多。解决这类问题最直接的方式就是枚举,将可能的情况列举一下,再逐步优化。
2.如何写递归
第一步:从小到大递推
第二步:分情况讨论,明确结束条件
只有列举清楚了才可能将终止条件写完整,确定终止条件对于递归至关重要。
第三步:组合出完整方法
将递推公式和终止条件组合起来,变成完整的方法
入参和出参怎么确定?一般是根据题目要求先将能写的写出来,之后再逐步补充,后面在题目里再看。