#include<map>
using namespace std;
class Solution {
public:
int climbStairs(int n) {
//终止条件
if(n==1) return 1;
if(n==2) return 2;
//递归
int sum1,sum2;
if(tempValue.find(n)==tempValue.end()){
// 没有保存过 计算并保存
int sum = climbStairs(n-1)+climbStairs(n-2);
tempValue.insert(pair<int,int>(n,sum));
return sum;
}else{
return tempValue.find(n)->second;
}
}
private:
map<int,int>tempValue;
};
要使用hashMap 来存储已经求过的值,否则耗时不通过。