单调队列-滑动窗口最小值


2021-11-7 凌晨一点看着直播里edg捧起了全球总决赛冠军奖杯,我直接肝到三点,给自己助助兴~

单调队列

单调队列和单调栈有着相同的思想,最大的区别就在于队列的左端右端都可以弹出,这就让单调队列相比较于单调栈更有弹性,更适用于那些对已经满足单调性的元素追加要求的情况。以下为单调递增队列图解(和单调栈一样的)单调栈可借鉴https://blog.csdn.net/smily94/article/details/121214795?spm=1001.2014.3001.5501.

请添加图片描述

题目:滑动窗口的最小值(递增队列)

描述:有一个长为n的序列a,以及一个大小为k的窗口。现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最小值。

输入:输入一共有两行。第一行有两个正整数n,k。第二行n个整数,表示序列a。

输出:每次滑动窗口的最小值

注:能用 Deque ,我就不用,就要手撕~~ ,用d数组模拟队列,为了方便查找,d数组存下标,下面模拟了一组数据中,输入6时的队列状态
请添加图片描述

代码

import java.util.Scanner;

public class Demo12 {
   
    public static void main(String[] args) {
            /*单调队列*/
        
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值