阅读 140

剑指offer10-2 青蛙跳台阶

剑指offer10-2 青蛙跳台阶

题目

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

答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。

示例 1:输入:n = 2输出:2示例 2:输入:n = 7输出:21示例 3:输入:n = 0输出:1提示:0 <= n <= 100

方法

动态规划

  • 时间复杂度:O(n)

  • 空间复杂度:O(1)

class Solution {    public int numWays(int n) {        if(n==0){            return 1;
        }else if(n==1){            return 1;
        }else if(n==2){            return 2;
        }        int dp1 = 1;        int dp2 = 2;        for(int i=3;i<=n;i++){            int tmp = dp1;
            dp1 = dp2;
            dp2 = (dp1+tmp)%1000000007;
        }        return dp2;
    }
}

分类: 剑指offer


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐