剑指offer-9-变态跳台阶

[复制链接]
发表于 2025-7-8 07:54:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
题⽬形貌

⼀只⻘蛙⼀次可以跳上1 级台阶,也可以跳上2级……它也可以跳上n级。求该⻘蛙跳上⼀个n级的台阶总共有多少种跳法。
思路及解答

数学归纳法

⾸先⻘蛙⼀次可以跳 1 , 2 , 3 到 n 级。假设函数是f(n) ,则:

  • ⻘蛙跳到第⼀级是f(1)=1 ,只有⼀种跳法。
  • ⻘蛙跳到第⼆级,可以是直接跳到第⼆级,也可以是从第⼀级直接跳。以是f(2)=f(1)+1
  • ⻘蛙跳到第三级,可以从第0 级跳,也可以从第1级跳,也可以从第2 级跳。以是f(3)=f(1)+f(2)+1 ;
  • 依次类推,⻘蛙跳到第n 级,可以是从0 , 1 , 2 , 3 .. (n-1) 级跳,以是f(n)=f(1)+f(2)+f(3)...+f(n-1)+1 ;
进一步观察可以发现:

  • f(1) = 1
  • f(2) = f(1) + f(0) = 2
  • f(3) = f(2) + f(1) + f(0) = 4
  • f(4) = f(3) + f(2) + f(1) + f(0) = 8
显然,这是一个等比数列,通项公式为f(n) = 2^(n-1)。这个发现将问题简化为简单的幂次计算
[code]public class Solution {    public int JumpFloorII(int target) {                        if (target
回复

使用道具 举报

快速回复 返回顶部 返回列表