一种很取巧的方法,他把数组改成滚动数组,中间i<n-1;正好排除n=0,n=1的情况,但是运行时间太长。
class Solution {
public int climbStairs(int n) {
int a=1;
int b=1,sum;
for(int i=0;i<n-1;i++){
sum=a+b;
a=b;
b=sum;
}
return b;
}
}
下面有人问了,哎这个还是太吃操作了,有没有什么更简单拿到方法,有的兄弟,有的,
class Solution {
public int climbStairs(int n) {
int []f=new int [n+1];
f[1]=1;
f[2]=2;
for(int i=3;i<=n;i++){
f[i]=f[i-1]+f[i-2];
}
return f[n];
}
}