动态规划1:爬楼梯问题

1.看力扣这道题

动态规划1:爬楼梯问题_第1张图片

2.我们可以把楼梯数简化出来

输入    0    1    2     3    4     5

输出    1     1    2     3   5     8

3.不难看出,其实就是斐波那契数列,这种题有两种解法,一种是递归,另一种则是动态规划

4.动态规划可以节约时间复杂度

5.下面请看解法,定义数组 a[0],a[1]=1;,作为初始值,然后每次依次遍历后面的值,最终,返回a[n]则为第n阶所需要的方法数

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

 6.看结果

动态规划1:爬楼梯问题_第2张图片

你可能感兴趣的:(动态规划,算法)