LeetCode 070 Climbing Stairs

来源:互联网 发布:qq网络传输协议 编辑:程序博客网 时间:2024/06/05 20:06

从下往上爬楼梯,每次可以爬一级或者两级,一共要爬n级,问一共有几种不同的方法能爬完。

用递推法可以解决。设f[i]为到第i级有几种方法,那么f[i]=f[i-1]+f[i-2]。所以这是一个Fibonacci数列。

代码:

    int climbStairs(int n) {        int f1 = 1;        int f2 = 1;        int f3;        if(n < 0) return 0;        if(n < 2) return 1;        for(int i = 2 ; i <= n ; i++) {            f3 = f1 + f2;            f1 = f2;            f2 = f3;        }        return f3;    }
0 0