zoukankan      html  css  js  c++  java
  • 刷题-力扣-剑指 Offer 10- II. 青蛙跳台阶问题

    剑指 Offer 10- II. 青蛙跳台阶问题

    题目链接

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/qing-wa-tiao-tai-jie-wen-ti-lcof
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    题目描述

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

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

    示例 1:

    输入:n = 2
    输出:2
    

    示例 2:

    输入:n = 7
    输出:21
    

    示例 3:

    输入:n = 0
    输出:1
    

    提示:

    • 0 <= n <= 100

    题目分析

    1. 根据题目描述,跳到第n阶台阶的跳法数目
    2. 跳到第n阶台阶,可以在n-1阶跳1阶,也可以在n-2阶跳两阶。
    3. 假设dp[n]表示跳到第n阶的跳法,有状态转移方程dp[n]=dp[n-1]+dp[n-2];边界条件dp[0]=1,dp[1]=1

    代码

    class Solution {
    public:
        int numWays(int n) {
            if (n == 0) return 1;
            if (n == 1) return 1;
            int front = 1;
            int tmp = 1;
            int rear = 1;
            while ((n--) - 1) {
                tmp = (rear + front) % 1000000007;
                front = rear;
                rear = tmp;
            }
            return rear;
        }
    };
    
  • 相关阅读:
    python的包和模块
    python 匿名函数
    hdu 1455 Sticks
    python 返回函数
    python 自定义排序函数
    batchsize对收敛速度的影响
    mini_batch GD
    dropout
    sift
    hog
  • 原文地址:https://www.cnblogs.com/HanYG/p/15268583.html
Copyright © 2011-2022 走看看