用递归的形式:return stair(n-1)+stair(n-2)超时。
用斐波那契数列形式。
public static int climbStairs(int n) {
int result1=0;
int result2=0;
if(n==1)
return 1;
if(n==2)
return 2;
for(int i=1;i<=n;i++)
{
if(i==1)
result1=1;
else if(i==2)
result2=2;
else
{//用temp记录前一个数
//当前数=result2+temp
//更新result1和temp
int temp=result1;
result1=result2;
result2+=temp;
temp=result2;
}
}
return result2;
}
}