- 思路
通过审题,归纳,可知结果满足斐波那契数列,也即此题的解法为斐波那契数列的编程解决。
一个方式是利用递归的思想,但是这里会 超时;所以要采用另一种策略。
于是将数列的结果放在一个数组中,而数组的当前位置的结果是前两个数的和,所以只要利用一次循环对数组进行初始化就可以了。
class Solution {
/*超出时间限制
public int climbStairs(int n) {
if(n==1){
return 1;
}
if(n==2){
return 2;
}
return climbStairs(n-1)+climbStairs(n-2);
}*/
public int climbStairs(int n) {
if(n<=1){
return 1;
}else{
int res[]=new int[n+1];
res[0]=1;
res[1]=1;
for(int i=2;i<=n;i++){
res[i]=res[i-1]+res[i-2];
}
return res[n];
}
}
}