递归的三种使用场景(三种)
1.替代多重循环
如:N皇后问题
2.解决本来就是用递归形式定义的问题
如:表达式求值
3.将问题分解为规模更小的子问题进行求解
如:上台阶、放苹果、算24、汉诺塔问题
递归函数实现的关键点(两点)
1.找到出口
2.找到任务的相似性
规模说明
递归会存在重复运算,当规模较大时就不能使用递归了(会超时),这时需要使用动态规划。
1.替代多重循环
如:N皇后问题
2.解决本来就是用递归形式定义的问题
如:表达式求值
3.将问题分解为规模更小的子问题进行求解
如:上台阶、放苹果、算24、汉诺塔问题
1.找到出口
2.找到任务的相似性
递归会存在重复运算,当规模较大时就不能使用递归了(会超时),这时需要使用动态规划。