滑动窗口求最大值 leetcode 59

滑动窗口求最大值 leetcode 59滑动窗口最大值问题利用递减队列实现Dequeuedequeue=newLinkedList<>();递减队列方法说明peekFirst获取队头元素pollFirsr队头元素出队offerLast==add在队尾插入新元素publicint[]maxSlidingWindow(int[]nums,intk){if(nums.length==0){returnnewint[0];}

大家好,又见面了,我是你们的朋友全栈君。

滑动窗口最大值问题
利用递减队列实现
Dequeue dequeue = new LinkedList<>();
递减队列方法说明
peekFirst获取队头元素
pollFirsr队头元素出队
offerLast == add在队尾插入新元素

    public int[] maxSlidingWindow(int[] nums, int k) {
        if(nums.length==0){
            return new int[0];
        }
        Deque<Integer> deque = new LinkedList<>();
        for (int i = 0; i <k ; i++) {
            while(!deque.isEmpty() && nums[i]>=nums[deque.peekLast()]){
                deque.pollLast();
            }
            deque.offerLast(i);
        }
        int len = nums.length;
        int[] res = new int[len-k+1];
        res[0] = nums[deque.peekFirst()];
        for (int i = k; i <len ; i++) {
            while(!deque.isEmpty() && nums[i]>=nums[deque.peekLast()]){
                deque.pollLast();
            }
            deque.offerLast(i);
            while (i-deque.peekFirst()>=k){
                deque.pollFirst();
            }
            res[i-k+1] = nums[deque.peekFirst()];
        }
        return res;
    }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158563.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • foc无刷电机位置控制(直流无刷电机接线图解)

    序:矢量控制的核心思想是为了简化无刷电机的控制模型,将一个需要换相的无刷电机通过各种算法变换,抽象为一个直流电机的控制模型,只需要控制简单的两个直流分量来控制无刷电机,其中Vq抽象为直流电机的两端电压,Vd可调节电机力矩,但这个模型需要一个实时的电机轴角度θ参与计算。为了实现这个直流电机的控制模型,需要用到两个数学变换,即clarke变换和park变换。需要用到最原始的PID控制器等内容。…

    2022年4月11日
    384
  • 通过SOCKS代理渗透整个内网

    通过SOCKS代理渗透整个内网通过SOCKS代理渗透整个内网1.背景经过前期的渗透工作,我们现在已经成功找到了web站点的漏洞,并且获得了一个普通的webshell,现在准备用菜刀去连接它。注意:本次环境在本地搭建,假设现在一无所知,这样更加真实。2.对web服务器提权2.1获取漏洞信息获取到webshell后使用菜刀连接,查看权限是apache,系统是redhat6.5。上传linux.sh到…

    2022年6月17日
    287
  • linux安装node_node服务器的搭建和使用

    linux安装node_node服务器的搭建和使用下载包解压tar-zvxf包名建立软链接node和npm软连接sudoln-s/root/data/program/node-v10.11.0-linux-x64/bin/node/usr/local/nodeln-s/root/data/program/node-v16.14.2-linux-x64/bin/npm/usr/local/bin/npm

    2025年11月3日
    5
  • 微信开放平台实现扫码登录(java)

    微信开放平台实现扫码登录(java)微信第三方登录准备阶段微信官方文档准备工作在进行第三方授权登录之前,需要在微信开放平台注册开发者账号,拿到相应的AppId和AppSecret以及redirect_uri,即可进行授权接入流程授权流程说明整体流程分:1.第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数;2.通过code参数加上AppID和AppSecret等,通过API换取access_token;3.通过access_token进行接口调

    2022年4月29日
    230
  • 风中有朵雨做的云解析_MySQL comment

    风中有朵雨做的云解析_MySQL comment其实就是告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了。默认情况下,delimiter是分号;。在命令行客户端中,如果有一行命令以分号结束,那么回车后,mysql将会执行该命令。DELIMITER$$DROPTRIGGERIFEXISTS`updateegopriceondelete`$$CREATETRIGGER`updateego

    2025年8月11日
    1
  • json和jsonp的使用区别

    json和jsonp的使用区别

    2021年10月17日
    52

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号