Not Only Algorithm,不仅仅是算法,关注数学、算法、数据结构、程序员笔试面试以及一切涉及计算机编程之美的内容 。。
你的位置:NoAlGo博客 » 题解 » 

Leetcode Climbing Stairs

Leetcode algorithms 第 70 题:Climbing Stairs。

题目

You are climbing a stair case. It takes n steps to reach to the top.

Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?

解答

爬楼梯,每次只能一格或两格。斐波那契数列,令an为n级楼梯的走法数,要到达第n级,可以从第n-1级或第n-2级到达,于是

an = an-1 + an-2

直接循环即可。

具体代码如下:

class Solution {
public:
    int climbStairs(int n) {
        if (n <= 2) return n;
        int a = 1, b = 2, c;
        for (int i = 3; i <= n; i++)
            c = a + b, a = b, b = c;
        return b;
    }
};
上一篇: 下一篇:

我的博客

NoAlGo头像编程这件小事牵扯到太多的知识,很容易知其然而不知其所以然,但真正了不起的程序员对自己程序的每一个字节都了如指掌,要立足基础理论,努力提升自我的专业修养。

站内搜索

最新评论