我正在解决一个竞争性编程问题,我试图反向遍历数组,然后在其内部再次反向遍历数组。我从我的代码中添加了此代码段,该代码段似乎无效。第二个循环只是被忽略。它只是输出:
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;
}
}
}
答案 0 :(得分:2)
代替
if(!checked[a]) continue;
checked[a] = 1;
您可能是说
if(checked[a]) continue;
checked[a] = 1;
答案 1 :(得分:1)
我相信在for循环开始时检查的是一个零数组,如果这样的话,则if语句应该是
if(checked[a]) continue;
没有'!'。