Leetcode 70. 爬楼梯

1.动态规划 fib序列

class Solution {
public:
    int dp[1005];
    int climbStairs(int n) {
        dp[0]=dp[1]=1;
        for(int i=2;i<=n;++i) dp[i]=dp[i-1]+dp[i-2];
        return dp[n];
    }
};

2.fib通项公式

class Solution {
public:
    int climbStairs(int n) {
        double k = 1 / sqrt(5), a = (1 + sqrt(5)) / 2, b = (1 - sqrt(5)) / 2;
        return (int)(k*(pow(a, n + 1) - pow(b, n + 1)));
    }
};

猜你喜欢

转载自blog.csdn.net/bendaai/article/details/80288925