这题是简单的动态规划问题
class Solution { public: int climbStairs(int n) { //动态规划 s[n]=s[n-1]+s[n-2] if(n<=2) return n; int s[n]={0},i=2; s[0]=1; s[1]=2; while(i<n){ s[i]=s[i-1]+s[i-2]; //分析出这一步是关键 i++; } return n==0?0:s[n-1]; } }; //递归的方法超时。。。 /* class Solution { public: int climbStairs(int n) { //先写终止条件 if(n==0||n==1) return 1; int i=climbStairs(n-1); int j=climbStairs(n-2); return i+j; } }; */