假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
注意:给定 n 是一个正整数。
如果台阶1,则只有一种跳法。
如果台阶2,则有两种跳法。
如果台阶3,则可能从台阶1和台阶2跳过去。
如果台阶4呢?则可能从台阶2和台阶3跳过去。
[台阶1可以跳到台阶2和台阶3,分别属于跳到台阶2和跳到台阶3的两种情况]
int climbStairs(int n)
{
if(n<=2)
{
return n;
}
int fn1 = 1;
int fn2 = 2;
int fn3;
for(int i=3;i<=n;i++)
{
fn3 = fn1 + fn2;
fn1 = fn2;
fn2 = fn3;
}
return fn3;
}
所以动态规划是啥????