第二个for循环未执行

时间:2020-06-21 22:15:01

标签: c++ loops

我正在解决一个竞争性编程问题,我试图反向遍历数组,然后在其内部再次反向遍历数组。我从我的代码中添加了此代码段,该代码段似乎无效。第二个循环只是被忽略。它只是输出:

loop3

loop2

loop1

for(int i=n;i>0;i--)
{
    cout<<"loop"<<i<<endl;
    int a=arr[i];
    int cnt=0;
    if(!checked[a]) continue;
    checked[a]=1;
    int kk=k;

    for(int j=i;j>=0;j--)
    {
        cout<<"in second loop";
        int b=arr[j];
        int res=a-b;
        if(res<=kk)
        {
            kk-=res;
            cnt++;
            continue;
        }

    }
}

2 个答案:

答案 0 :(得分:2)

代替

if(!checked[a]) continue;
checked[a] = 1;

您可能是说

if(checked[a]) continue;
checked[a] = 1;

答案 1 :(得分:1)

我相信在for循环开始时检查的是一个零数组,如果这样的话,则if语句应该是

if(checked[a]) continue;

没有'!'。