本来打算用递归的方式来做,但是超出时间限制,发现直接用数组代替就好了
a[n-1]=a[n-2]+a[n-3];
int climbStairs(int n) {
std::vector<int> a(n);
if(n==1) {
return 1;
}
if(n==2) {
return 2;
}
if(n>2) {
a[0] = 1;
a[1] = 2;
for (int i =2;i<n;i++){
a[i]=a[i-1]+a[i-2];
}
return a[n-1];
}
}