爬楼梯

爬楼梯

一、题目描述

有n阶楼梯需要爬,每一次只能爬一阶楼梯,或者两阶楼梯。爬到n阶一共有多少方案。
实例

输入:n = 2
输出:2
1. 1 阶 + 1 阶
2. 2 阶

输入:n = 3
输出:3
1. 1 阶 + 1 阶 + 1 阶
2. 1 阶 + 2 阶
3. 2 阶 + 1 阶

二、解题思路

发现每次只能走一阶或者两阶。假设一共有f(x)中方案。f(x) = f(x-1) + f(x-2)。x为总共的楼梯数。

三、解题方法

方法1
使用动态规划的方式。将f(x-1) + f(x-2)累加起来即可。当x为0或者1时。发现只用走一步即可到达终点,初始化只有一种方案。
代码实现:

public int climbStairs(int n) {
        int p = 0;
        int q = 0;
        int r = 1;

        for(int i = 1; i<=n; i++){
            p = q;
            q = r;
            r = p + q;
        }

        return r;
    }
posted @ 2022-09-10 22:49  z_coding  阅读(127)  评论(0)    收藏  举报