您当前的位置: 首页 > 

TechGuide

暂无认证

  • 4浏览

    0关注

    176博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【每日一题】JZ8 跳台阶

TechGuide 发布时间:2021-08-29 20:50:36 ,浏览量:4

当你的才华还撑不起你的野心时,你应该静下心去学习 。 题目描述

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

示例

输入:2
返回值:2
解题思路

设跳上 n 级台阶有 f(n) 种跳法。在所有跳法中,青蛙的最后一步只有两种情况: 跳上 1 级或 2 级台阶。 当为 1 级台阶: 剩 n−1 个台阶,此情况共有 f(n−1) 种跳法; 当为 2 级台阶: 剩 n−2 个台阶,此情况共有 f(n−2) 种跳法。

f(n) 为以上两种情况之和,即 f(n)=f(n-1)+f(n-2),以上递推性质为斐波那契数列。 青蛙跳台阶问题: f(0)=1 , f(1)=1 , f(2)=2 ; 斐波那契数列问题: f(0)=0 ,f(1)=1 , f(2)=1 。 在这里插入图片描述 复杂度分析: 时间复杂度 O(N) : 计算 f(n) 需循环 n 次,每轮循环内计算操作使用 O(1) 。 空间复杂度 O(1) : 几个标志变量使用常数大小的额外空间。

参考代码 Java版本
class Solution {
    public int numWays(int n) {
        if(n            
关注
打赏
1665329535
查看更多评论
0.0378s