1.确定dp数组以及下标的含义
dp[i]:爬到第i层楼梯,有dp[i]种方法
2.确定递推公式
dp[i]=dp[i-1]+dp[i-2]
3.dp数组如何初始化
dp[1]=1,dp[2]=2
4.确定遍历顺序
从前向后遍历的
5.举例推导dp数组
class Solution {
public:int climbStairs(int n) {if (n <= 1) return n; // 因为下面直接对dp[2]操作了,防止空指针vector<int> dp(n + 1);dp[1] = 1;dp[2] = 2;for (int i = 3; i <= n; i++) { // 注意i是从3开始的dp[i] = dp[i - 1] + dp[i - 2];}return dp[n];}
};