You are climbing a stair case. It takes n steps to reach to the top.
Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?
本来用的递归 结果迭代太多 超时了
然后才明白这就是一个波非那切数列= =记住啦~
public class Solution {
public int climbStairs(int n) {
if(n<3) return n;
int a=1;
int b=2;
int result =0;
for(int i=3;i<=n;i++){
result = a+b;
a=b;
b=result;
}
return result;
}
}