每日一道算法题之爬楼梯
一、题目描述
假设你正在爬楼梯。需要n阶你才能到楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?
C++程序要求输入输出示例如下:
输入:2 输出:2
解释说明:爬2层楼梯才能到达楼顶,可以1阶+1阶或者2阶。
二、思路
2.1 动态规划初识
动态规划,英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。所以动态规划中每一个状态一定是由上一个状态推导出来的。
2.2 动态规划解题步骤
解题步骤总共有五步:
1.确定dp数组(dp table)以及下标的含义
2. 确定递推公式
3.dp数组如何初始化
4. 确定遍历顺序
5. 举例推导dp数组