[2021校招必看之Java版《剑指offer》-34] 跳台阶

文章目录

  • 1、题目描述
  • 2、解题思路
    • 2.1 递归法
    • 2.2 迭代法
  • 3、解题代码
    • 3.1 递归法
    • 3.2 迭代法
  • 4、解题心得

1、题目描述

  【JZ8】一只青蛙一次可以跳上 1 级台阶,也可以跳上 2 级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
  知识点:递归,记忆递归,动态规划,递推
  难度:☆

2、解题思路

2.1 递归法

  当台阶只有 1 级,青蛙只有一种跳法;
  当台阶只有 2 级,青蛙可以一下子跳 2 级,也可以跳 2 下 1 级,有 2 种跳法;
  当台阶有 n 级,我们直接分析青蛙跳到第 n 级的场景,它可能是从第 n-1 级跳了 1 级到达,也可能是从第 n-2 级跳了 2 级到达的。
  设 F(n) 表示青蛙跳上 n 级的台阶总共的跳法数量。
  那么,当青蛙是跳了 1 级到达的第 n 级,它到达 n-1 级时就有 F(n-1) 种跳法;当它是跳了 2 级到达的第 n 级,那么它在到达 n-2 级时,就有 F(n-2) 种跳法。因此,青蛙跳到 n

你可能感兴趣的:(剑指offer(Java语言))