【2023131】力扣hot100学习70爬楼梯(动态规划)

​​爬楼梯

【2023131】力扣hot100学习70爬楼梯(动态规划)_第1张图片
看到题目,让你看有多少种不同的方法爬到楼顶,没有让你具体列出来,就问了方案的数量,可以考虑动态规划。
想动态规划五部曲:
1.确定dp[i]的下标以及dp的含义:爬到i层台阶,有dp[i]种方案。
2.确定动态规划递推公式,f(x)= f(x-1)+f(x-2)
3.dp数组初始化 dp[1] =1 ,dp[2] = 2
4.确定遍历顺序
5.打印数组

#include
using namespace std;

class solution
{
public:
	int climbstats(int n)
	{
		if (n <= 1)
			return n;//递归中经常考虑的,防止空指针
		vector<int>dp(n + 1);//创建dp数组 ?????我不理解为啥是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];
	}  
};

你可能感兴趣的:(力扣,动态规划,leetcode,学习)