【 声明:版权所有,转载请标明出处,请勿用于商业用途。 联系信箱:libin493073668@sina.com】
题目链接:https://leetcode.com/problems/climbing-stairs/
题意:
一个楼梯,一步只能跨一阶或者跨两阶,判断第n阶有几种走法
思路:
dp[i]表示走到第i阶有几种走法
我们很容易知道,第i阶只能从第i-1与i-2阶走到
所以状态转移方程为:dp[i] = dp[i-1]+dp[i-2]
class Solution
{
public:
int climbStairs(int n)
{
int (*dp) = new int[n+1];
dp[1] = 1;
dp[2] = 2;
for(int i = 3; i<=n; i++)
{
dp[i] = dp[i-1]+dp[i-2];
}
return dp[n];
}
};