题目:你正在爬楼梯。到达山顶需要n步。每次你可以爬1或2级台阶。你可以用几种不同的方式爬到山顶?
其实是斐波那契问题,但是用斐波那契解决会出现时间超限的问题,故引入简单的动态规划思想。
动态规划:核心思想是记住已经解决过的子问题的解。
class Solution {
public int climbStairs(int n) {
if(n==1)
return 1;
int pre=1,ppre=1,now=1;
for(int i=2;i<=n;i++){
now=pre+ppre;
ppre=pre;
pre=now;
}
return now;
}
}