题目 70 爬楼梯
要爬一个n阶的楼梯
每次可以爬1或者2
有多少总方式可以到楼顶
思路
这个问题就是斐波那契数列数列的变形问题,可以用递归,可以for循环也可以用dp
题解
public int climbStairs(int n) {
int[] dp = new int[n + 1];
dp[0]=1;
dp[1]=1;
for (int i = 2; i <= n; i++) {
dp[i]=dp[i-1]+dp[i-2];
}
return dp[n];
}
public int climbStairs(int n) {
int p=0,q=1,r=1;
for (int i = 2; i <= n; i++) {
p=q;
q=r;
r=p+q;
}
return r;
}