1 条题解

  • 0
    @ 2024-3-26 19:17:12

    把课堂练习和作业结合一下

    思路

    维护单调递减队列,求出滑动过程中每个窗口的最大值,同样的方法维护单调递增队列,求出滑动过程中每个窗口的最小值,作差输出即可

    参考代码
    //关键代码
        //维护单调递减队列 
            if (q1[head1] + k <= i)
                head1++;
            while (head1 <= tail1 && a[q1[tail1]] <= a[i])
                tail1--;
            q1[++tail1] = i;
            //维护单调递增队列 
            if (q2[head2] + k <= i)
                head2++;
            while (head2 <= tail2 && a[q2[tail2]] >= a[i])
                tail2--;
            q2[++tail2] = i;
    
    • 1

    信息

    ID
    699
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    (无)
    递交数
    71
    已通过
    24
    上传者