10 条题解

  • 1
    @ 2023-5-26 20:11:16

    按照题意模拟即可

    核心代码:

    while(n--){
            bool find=false;
            scanf("%d",&k);
            for(int i=L;i<R;i++) if(que[i]==k) find=true;
            if(!find) cnt++,que[R++]=k;
            if(R-L>m) L++; 
        }
    

    循环队列

    for(int i = 0;i < n;++i){
            int tmp;
            scanf("%d", &tmp);
            if(hash[tmp])   continue;
            hash[tmp] = 1;
            if(head == tail && i )    hash[zhan[tail]] = 0,tail = (tail + 1) % m;  //删除标记。出队
            zhan[head] = tmp, head = (head + 1) % m;   //入队
    

    信息

    ID
    48
    时间
    1000ms
    内存
    256MiB
    难度
    4
    标签
    (无)
    递交数
    1619
    已通过
    715
    上传者