Leetcode题解 | 三步学会所有递归

2022-04-11 19:08:02 浏览数 (1)

「递归」在算法初学者眼中总是一个令人头疼的问题

但其实,这种可以将一个问题拆解为多个重复子问题的算法

只要我们掌握了其中的 “套路” ,便可以游刃有余的解决所有递归类问题。

下面我们就开始吧~

一、青蛙跳台阶

我们首先以最简单的「青蛙跳」为例子来拆解递归问题

剑指 Offer 10- II. 青蛙跳台阶问题【超级简单】 https://leetcode-cn.com/problems/qing-wa-tiao-tai-jie-wen-ti-lcof/

问题定义:

一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。

第一步:明确递归关系

当我们确定了一个问题是可以使用递归思想解决的时候,我们一定可以明确其中的递归关系,即该问题的子问题之间存在的函数关系。

在本题中,我们要 求解青蛙跳上一个 n 级的台阶总共有多少种跳法;

我们知道青蛙一次只可以跳1级或2级的台阶,那么在小蛙

0 人点赞