代码难点
还是不理解两个int 函数是什么原理,这个属于c++的内容了,需要去学习一下。?!
这里设计到函数的调用吧?
正解
这里就是函数的调用。函数1的返回值调用函数2,函数2里用到了函数1内定义的vector。但是是为什么要这么调用来调用去呢?
class Solution {
public:
int climbStairs(int n) {
vector<int> demo(n+1,-1);
return climb_stairs(0,n,demo);
}
int climb_stairs(int i,int n,vector<int> &demo)
{
if(i>n) return 0;
if(i==n) return 1;
if(demo[i]>0) return demo[i];
demo[i]=climb_stairs(i+1,n,demo)+climb_stairs(i+2,n,demo);
return demo[i];
}
};