请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

LeetCode 70 爬楼梯

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;
}

正在回答

1回答

你的代码没有问题呀。我在本地可以运行。把 class Solution 这个类提交给 Leetcode 也是可以通过的:)


继续加油!:)

0 回复 有任何疑惑可以回复我~
  • 提问者 Mosea #1
    非常感谢!bobo老师,我提交给LeetCode,确实可以通过。我还是应该以Leecode提交为标准而不应该困在IDE.我因为是在ClionIDE上先编写和测试的,现在运行就输出对了。我怀疑是因为我第一次写for循环是没有花加括号,然后加了花括号就debug了,但是现在我重复了一下之前的操作,写for循环没加花括号,然后再加上就debug,但是这次运行对了。老师我真的不是没事找事,你看一下我图片,debug时 i=4了,但是resSumh还是等于3与i=3时一样,我真的不知道这到底是为什么,这是真的是我遇到的一件让我难忘的事情。
    回复 有任何疑惑可以回复我~ 2021-08-21 13:14:58
  • liuyubobobo 回复 提问者 Mosea #2
    哈哈,没关系的。继续加油!:)
    回复 有任何疑惑可以回复我~ 2021-08-21 14:05:17
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信