算法通关村第16关【黄金】| 滑动窗口与堆结合

news2024/11/17 16:02:48

思路:求最大值和前k个最大值通常就要考虑使用堆

一般想法是堆的根结点保存当前窗口最大值,循环加入元素,怎么判断根结点是不是在窗口内呢

那就是还需要保存元素对应的下标,当根结点的下标在窗口外(一定会在最左侧)就剔除

class Solution {
    public int[] maxSlidingWindow(int[] nums, int k) {
        int len = nums.length;
        PriorityQueue<int[]> q = new PriorityQueue<>(len, (a, b) -> b[0] - a[0]);
        int[] res = new int[len - k + 1];
        int max = Integer.MIN_VALUE;
        for(int i = 0;i<k;i++){
            q.add(new int[]{nums[i],i});
        }
        res[0] = q.peek()[0];
        for(int i = k;i<len;i++){
            q.add(new int[]{nums[i],i});
            while(q.peek()[1] <= i - k){
                q.poll();
            }
            res[i-k+1] = q.peek()[0];
        }
        return res;
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1065495.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

亚马逊计划向开创性的人工智能初创公司Anthropic投资高达4亿美元

原创 | 文 BFT机器人 在一项巨大而突破性的举措中&#xff0c;亚马逊公布了向人工智能初创公司Anthropic投资高达4亿美元的计划&#xff0c;其愿景是创建更易于理解和可控的人工智能系统。此次合作标志着亚马逊打算在人工智能领域率先取得进步&#xff0c;巩固其在技术领域的地…

gitee 创建仓库 git 连接

文章目录 gitee 创建仓库 & git 连接gitee 创建仓库git 可视化工具使用 gitee 创建仓库 & git 连接 gitee 创建仓库 gitee 官网&#xff1a;工作台 - Gitee.com 先注册、登录账号 点击右上角 号&#xff0c;新建仓库 填写仓库名称&#xff0c;然后创建 选择你所在…

1.5 JAVA程序运行的机制

**1.5 Java程序的运行机制** --- **简介&#xff1a;** Java程序的运行涉及两个主要步骤&#xff1a;编译和运行。这种机制确保了Java的跨平台特性。 **主要内容&#xff1a;** 1. **Java程序的执行过程**&#xff1a; - **编译**&#xff1a;首先&#xff0c;扩展名为.jav…

VMware Horizon 8 运维系列(二)win10设置共享桌面图标

前言 在win10模板上用管理员帐号安装好软件之后&#xff0c;有的软件快捷图标不会出现在桌面上&#xff0c;有的即使有在桌面上出现&#xff0c;但是当发布云桌面池后&#xff0c;客户端登录的都是不同的域用户&#xff0c;当不同的用户登录系统的时候&#xff0c;很多软件快捷…

【数据库——MySQL】(16)游标和触发器习题及讲解

目录 1. 题目1.1 游标1.2 触发器 2. 解答2.1 游标2.2 触发器 1. 题目 1.1 游标 创建存储过程&#xff0c;利用游标依次显示某部门的所有员工的实际收入。(分别用使用 计数器 来循环和使用 标志变量 来控制循环两种方法实现) 创建存储过程&#xff0c;将某部门的员工工资按工作…

Pr音乐鼓点节拍插件BeatEdit出现不能标点问题如何解决?

BeatEdit是一款专业的PR卡点自动剪辑插件工具。BeatEdit最新版内置采集、剪辑、调色、美化音频、字幕添加、输出、DVD刻录等功能&#xff0c;还支持检测音乐节拍、生成时间线标记等操作。通过BeatEdit版软件用户只需选择素材就可以自己剪辑&#xff0c;多用于进行鬼畜视频制作。…

MS31703H 桥栅极驱动控制器,可P2P替代TI的DRV8703

MS31703NA 是一款小型单通道 H 桥栅极驱动 器。它使用四个外部 N 通道 MOSFET &#xff0c;驱动一个双 向刷式直流电机。 PH/EN 、独立半桥或 PWM 允许轻松连接到控制 器电路。内部传感放大器提供可调的电流控制。集 成的电荷泵可提供 100% 占空比&#xff0c;而…

docker搭建Jenkins及基本使用

1. 搭建 查询镜像 docker search jenkins下载镜像 docker pull jenkins/jenkins启动容器 #创建文件夹 mkdir -p /home/jenkins_home #权限 chmod 777 /home/jenkins_home #启动Jenkins docker run -d -uroot -p 9095:8080 -p 50000:50000 --name jenkins -v /home/jenkins_home…

基于FPGA设计的低成本四通道 1GSPS 示波器设计资料

完整设计资料下载链接 https://download.csdn.net/download/tianqiquan/88253962 该项目的目标是设计和构建一个PC 连接替代方案&#xff0c;以替代低成本台式 1000 系列示波器&#xff0c;在性能和价格上都具有竞争力。该项目必须达到的规格是四个通道至少 100MHz&#xff0c…

Linux网络配置解析:连接世界的关键步骤

1.IP预备知识 IP最重要的信息包含&#xff1a;IP地址DNS网关 以下以IPV4为例说明&#xff1a; 11000000.10101000.00000000.00000001/24 192.168.0.1/24IP地址一般包含32位二进制地址和子网掩码 子网掩码全1位置对应的就是IP地址的网络号&#xff0c;全0位置对应的就是具体…

【Spatial-Temporal Action Localization(五)】论文阅读2020年

文章目录 1. Actions as Moving Points摘要和结论引言&#xff1a;针对痛点和贡献模型框架实验 1. Actions as Moving Points Actions as Moving Points (ECCV 2020) 摘要和结论 MovingCenter Detector (MOCdetector) 通过将动作实例视为移动点的轨迹。通过三个分支生成 tub…

混合表示人体的论文

0、致敬Xia Weihao 整理了数字人方面的重要论文和链接 网址如下&#xff1a; GitHub - weihaox/awesome-digital-human: A collection of resources on digital human including clothed people digitalization, virtual try-on, and other related directions.A collection …

继电器测试的应用场景和行业有哪些?

继电器是一种常见的电气元件&#xff0c;用于控制电路的开关和保护设备&#xff0c;它在许多行业和应用场景中发挥着重要的作用。继电器在电力系统中用于保护和控制电力设备&#xff0c;如发电机、变压器、电缆和线路。继电器测试可以确保继电器的准确性和可靠性&#xff0c;以…

起重机笔记 - 进阶篇(编辑中...)

1.双速葫芦 起重机在实际使用过程中&#xff0c;要兼顾效率和最大载重这两个因素&#xff0c;所以&#xff0c;起重机厂商会推出双速葫芦。双速葫芦的变速比&#xff0c;10吨的级别&#xff0c;最高可以达到1:10甚至更靠上。大功率的低速档用于提升高载荷负重&#xff0c;高速…

米小樽MiMe三店同开,应时手作的高品质米乳饮品新体验

米小樽MiMe于美丽的鹭岛厦门正式试营业。这一次的布局不可谓不大&#xff0c;三家门店&#xff1a;莲花北路、湾悦城、西堤&#xff0c;厦门三地同步开启&#xff0c;致力于为消费者带来崭新的健康饮品体验&#xff0c;开启潮流的「饮养」生活方式。 清新惬意的门店设计&#x…

【Overload游戏引擎分析】编辑器对象鼠标拾取原理

Overload的场景视图区有拾取鼠标功能&#xff0c;单击拾取物体后会显示在Inspector面板中。本文来分析鼠标拾取这个功能背后的原理。 一、OpenGL的FrameBuffer 实现鼠标拾取常用的方式有两种&#xff1a;渲染id到纹理、光线投射求交。Overload使用的是渲染id到纹理&#xff0c…

苹果商城(App Store)应用程序苹果ios签名进行系统怎么上架的注意事项完整教程

苹果商城&#xff08;App Store&#xff09;应用程序苹果ios签名进行系统怎么上架的注意事项完整教程 导语&#xff1a;苹果签名是保障安全和防止软件篡改的重要措施&#xff0c;也是苹果设备下载应用程序的必要步骤。本文将为大家提供一个详细的教程&#xff0c;介绍如何为应用…

机械臂运动控制,通讯的解包->运动控制->数据封包上报过程

一、协议 数据格式为小端模式&#xff0c;浮点数格式为IEEE754&#xff0c;需与上位机的PC端一致&#xff0c;如window系统&#xff0c;其它系统需要自行测试&#xff0c;用于传输16位、32位、float数据格式&#xff0c;避免只传输字节数据带来转换的繁琐及精度丢失。 二、下位…

软件四大开源生态系统的开源

Java (Maven)、JavaScript (npm)、Python (PyPI)、.NET (NuGet Gallery) 四大开源生态系统的开源应用&#xff1b; 开源项目的主动维护也变得越来越少。研究表明&#xff0c;去年有近五分之一&#xff08;18.6%&#xff09;的项目停止维护&#xff0c;影响了 Java 和 JavaScrip…

【科研工具】-论文相关

科研工具 1 论文检索2 论文阅读3 论文写作4 论文发表 1 论文检索 计算机类英文文献检索数据库DBLP: 只有论文基本信息&#xff08;标题、作者等&#xff09;&#xff1b;下载论文&#xff1a;知网\IEEE\ACM\SCI-Hub等&#xff0c;记得创建文件夹&#xff08;检索词条、日期等&…