LeetCode 70 – 爬楼梯

题目描述

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

题目分析

f(n) = f(n – 1) + f(n – 2)
直接递推即可

Java

public int climbStairs(int n) {
    int p1 = 1, p2 = 1;
    int ans = 1;
    for (int i = 2; i <= n; i++) {
        ans = p1 + p2;
        p1 = p2;
        p2 = ans;
    }
    return ans;
}

Kotlin

fun climbStairs(n: Int): Int {
    var p1 = 1
    var p2 = 1
    var ans = 1
    for (i in 2..n) {
        ans = p1 + p2
        p1 = p2
        p2 = ans
    }
    return ans
}

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部