bobo老师,可能这个问题不属于课程范围。可能是c++语言问题。我打算优化一下爬楼梯的动态规划的方法,逻辑代码如下,我感觉逻辑没有错,如果我逻辑有错,能帮我指出来吗?但是我遇到一个问题,就是发现输出结果不对,然后单步调试了一下,发现循环体只执行了第一条语句。然后上网搜索了一下循环体为什么只执行第一句,没有找到解答,现在感到很困惑。老师你们帮我看一下吗?
namespace climbStairs1{
class Solution {
public:
int climbStairs(int n) {
// vector<int>memo(n+1,-1);
// memo[0]=1;
// memo[1]=1;
// for(int i=2;i<=n;i++)
// memo[i]=memo[i-1]+memo[i-2];
//
// return memo[n];
int one=1;
int two=2;
int resSum=0;
if(n==1) return one;
if(n==2) return two;
for(int i=3;i<=n;i++){
resSum = one+two;
one = two;
two = resSum;
cout<<i<<endl;
}
return resSum;
}
};
}
void climbStairsTest(){
int n=8;
int res = climbStairs1::Solution().climbStairs(n);
cout<<res<<endl;
}