显示错误的输出

问题描述

这是来自hackerrank的问题。

https://www.hackerrank.com/challenges/jumping-on-the-clouds/problem?h_l=interview&isFullScreen=false&playlist_slugs%5B%5D%5B%5D%5B%5D=interview-preparation-kit&playlist_slugs%5B%5D%5B%5D%5B%5D=warmup

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n;
    cin>>n;
    int jump=0;
    int a[101];
    a[0]=0;
    for (int i = 1; i < n; i++) {
        cin>> a[i];
    }
    for(int j=1;j<n;j++)
    {
        if(a[j]==1)
        {
            jump++;
        }
        if(a[j]==0)
        {
            jump++;
            if(a[j-1]==0 && a[j-1]==1)
                jump--;
        }
    }
    cout<<jump;
    return 0;
}

Emma正在玩一个新的手机游戏,该游戏以连续编号的云开始。有些云是雷雨,有些是积云。她可以跳到任何积云,该积云的数量等于当前云的数量加上1或2。她必须避免打雷。确定Emma从起始位置跳到最后一朵云所需的最小跳数。总是有可能赢得比赛。

对于每个游戏,如果安全,艾玛都会得到一个数组,编号为0,如果必须避免,则编号为1。例如,c = [0,1,0]从0 ... 6索引。每个云上的数字是其在列表中的索引,因此她必须避免在索引1和5处出现云。她可以遵循以下两条路径:0-> 2-> 4-> 6或0-> 2-> 3- > 4-> 6。第一条路径需要3次跳跃,而第二条路径需要4次跳跃。因此,我们必须打印出赢得比赛所需的最小跳跃次数。

这是输入/输出:

7
0 0 1 0 0 1 0

预期输出为:4

我的错误输出:6

解决方法

我看到的第一个明显的问题是第二个循环永远不会结束,因为j永远不会递增。此外,条件

if(a[j-1]==0 && a[j-1]==1)

没有任何意义。 a [j-1]只能是0或1,除非您在量子计算机上运行它,否则都不能为0。解决这些问题,然后从那里开始工作。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...