滑动窗口求最大值 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;
    }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 请编写一个给list去重的函数_计算表达式

    请编写一个给list去重的函数_计算表达式c#拉姆达表达式实现List去重varlist=studentlist.OrderByDescending(a=>a.CreateDate).ToList();Console.WriteLine(JsonConvert.SerializeObject(list.Where((x,i)=>list.FindIndex(z=&gt…

  • netty通信框架_王国风云2控制台代码

    netty通信框架_王国风云2控制台代码写在前面所属章节链接第二章2.1BIO通信aaaTimeServer代码importjava.io.IOException;importjava.net.ServerSocket;importjava.net.Socket;publicclassTimeServer{ publicstaticvoidmain(String[]args)throwsIOException{ intport=8081; if(args

  • org.apache.kafka.clients_kafka源码分析

    org.apache.kafka.clients_kafka源码分析apacheKafka中国社区中国社区QQ群1:162272557未满收费5¥,保证QQ运营,腾讯QQVIP收年费,2000人群非常活跃,质量很高中国社区QQ群2:414762562未满1000人群中国社区QQ群3:191278841未满1000人群中国社区QQ群4:415846802未满1000人群每当有新blog发布时,会在此处更新,欢迎大家拍砖共同成长目录索引…

    2022年10月14日
  • c++报错无法打开文件_如何打开源文件

    c++报错无法打开文件_如何打开源文件一、无法打开文件“xxx.lib”出现这种错误一般为①未添加xxx.lib库文件②库添加后,路径不对,找不到对应的库文件路径解决方案:先查看库文件是否已经添加若未添加,右击项目->属性->链接器->输入;将库文件加入即可如果库文件已经添加,仍然报错,此时需要查看生成的库文件的路径了。先找到生成库文件的路径,右击项目->属性->常规->查看输出目录是否与生成的库文件的路径是否匹配,若不匹配,修改路径即可。二、无法打开源文件说明是库的附加包含路径有问题

    2022年10月21日
  • discuz论坛更换域名,搬家步骤

    discuz论坛更换域名,搬家步骤搬家步骤具体如下:1、打包数据库文件保存到本地。2、打包网站根目录所有程序(discuz)保存到本地。3、上传网站程序包和数据库包到新的空间,将数据库上传到新的服务器中。4、找到config

  • 服务器出现kernel: TCP: time wait bucket table overflow解决

    服务器出现kernel: TCP: time wait bucket table overflow解决http://blog.sina.com.cn/s/blog_69cdee7f0100yowt.html#一台Nginx+php-fcgi的服务器做了负载均衡,在主控端发现一直在报错:viewsourceprint?01#—————————-引用文字-开始———————-

发表回复

您的电子邮箱地址不会被公开。

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