题目
算法公式:f(n)=f(n-1)+f(n-2) {n>2}
解法1:哈希表进行存取
class Solution {
private Map<Integer,Integer> map=new HashMap<>();
int result;
public int climbStairs(int n) {
if(n==1) return 1;
if(n==2) return 2;
if(map.get(n)!=null){
return map.get(n);
}else{
result=climbStairs(n-1)+climbStairs(n-2);
map.put(n,result);
return result;
}
}
}
解法2:递归
int result;
public int climbStairs(int n) {
if(n==1) return 1;
if(n==2) return 2;
int prepre=1;
int pre=2;
for(int i=3;i<=n;i++){
result = pre+prepre;
prepre=pre;
pre=result;
}
return result;
}