递归
递归的特征
1.执行时范围不断缩小,这样才能触底反弹。
2.终止判断在调用递归前面。
在执行递归之前,一定会有一个终止条件。
启示我们,先考虑清楚什么情况下终止,而且相关代码要写在靠前位置,之后再考虑递归的逻辑,遮阳降低编写的难度。
⭐如何写递归
1.从小到大递归。
先猜测递归关系,不需要证明,用几个较小的值验一下,再用几个较大的值验一下。
2.分情况讨论,明确结束条件
终止条件可能不止一个。
不一定是触底才开始反弹,而是达到某种要求就停止。枚举试一下。
只有列举清楚了才可能将终止条件写完整,所以在面试的时候千万不要上来就写,而应该先和面试官讨论你的设计方案,不要害怕与面试官讨论!假如有明显的缺陷他甚至会提醒你的,所以这也是借力打力的一个技巧。
3.组合出完整方法。
先分情况写出来,再看能否精简优化,不要步子迈太大。
4.想验证,则从大到小画图推演。