news 2026/5/20 22:15:30

hot100 239.滑动窗口最大值

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
hot100 239.滑动窗口最大值

思路:利用单调队列维护滑动窗口。

1.右边入(元素进入队尾,同时维护队列的单调性)。

2.左边出(元素离开队首)。

3.记录/维护答案(根据队首)。

为什么代码中的队首离开窗口写的是if而不是while?

答:

这是因为窗口在一步一步地向右滑动(像只蜗牛),所以元素也是一个一个地离开窗口,不会出现同一轮循环中有多个元素离开窗口的情况。

附代码:

class Solution { public int[] maxSlidingWindow(int[] nums, int k) { int n = nums.length; int[] res = new int[n - k + 1]; //窗口个数 LinkedList<Integer> queue = new LinkedList<>(); for(int i = 0;i < n;i++){ //1.右边入 while(!queue.isEmpty() && nums[queue.getLast()] < nums[i]){ queue.removeLast(); //移除所有比当前元素小的元素,确保队列中的元素是单调递减的 } queue.addLast(i); //注意保存的是下标,这样下面可以判断队首是否离开窗口 //2.左边出(移除过期元素) int left = i - k + 1; //窗口左端点 if(queue.getFirst() < left){ //队首元素已不在窗口中,移除过期的队首元素 queue.removeFirst(); } //3.在窗口的左端点处记录答案 if(left >= 0){ //由于队首到队尾单调递减,所以窗口的最大值就在队首 res[left] = nums[queue.getFirst()]; } } return res; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/19 19:38:05

Apache SeaTunnel性能调优全攻略:从新手到专家的5个核心步骤

Apache SeaTunnel性能调优全攻略&#xff1a;从新手到专家的5个核心步骤 【免费下载链接】seatunnel 项目地址: https://gitcode.com/gh_mirrors/seat/seatunnel Apache SeaTunnel作为企业级数据集成平台&#xff0c;在实际部署中经常面临性能瓶颈的挑战。本文通过系统…

作者头像 李华
网站建设 2026/5/19 19:38:01

20、深入探索内容管理系统的功能与应用

深入探索内容管理系统的功能与应用 在当今数字化时代,企业网站的内容管理变得至关重要。有效的内容管理系统不仅能够提升网站的运营效率,还能确保内容的质量和一致性。下面我们将详细探讨内容管理系统中的数据导入导出、工作流、用户角色、与其他服务器的集成等关键方面。 …

作者头像 李华
网站建设 2026/5/19 19:37:59

21、企业内容管理与集成解决方案深度解析

企业内容管理与集成解决方案深度解析 在当今数字化的商业环境中,企业面临着诸多挑战,如内容管理的一致性、业务应用和流程的集成等。本文将深入探讨两个重要的解决方案:Content Management Server与SharePoint Portal Server的协同工作,以及BizTalk Server在业务集成方面的…

作者头像 李华
网站建设 2026/5/20 10:28:58

22、BizTalk Server:企业数据交换与业务流程管理的综合解决方案

BizTalk Server:企业数据交换与业务流程管理的综合解决方案 在企业间的数据交换和业务流程管理中,面临着诸多挑战,如数据格式不匹配、业务流程复杂多变以及数据安全保护等问题。BizTalk Server提供了一系列强大的功能和工具,能够有效应对这些挑战,实现企业间的高效协作和…

作者头像 李华
网站建设 2026/5/20 14:50:32

RAF-DB人脸表情数据集完整使用指南

RAF-DB人脸表情数据集完整使用指南 【免费下载链接】RAF-DB人脸表情数据集 RAF-DB人脸表情数据集是一个用于人脸表情识别的开源数据集。该数据集包含了丰富的训练和验证数据&#xff0c;适用于研究和开发人脸表情识别算法。 项目地址: https://gitcode.com/open-source-toolk…

作者头像 李华
网站建设 2026/5/19 19:37:54

44、在虚拟机中安装操作系统及使用VirtualBox入门指南

在虚拟机中安装操作系统及使用VirtualBox入门指南 1. 在Virtual PC 2007中安装Fedora 13 在虚拟机上安装Fedora 13与在物理机上安装基本相同。为确保虚拟环境与后续操作所需环境一致,可按以下步骤安装Fedora 13虚拟机: 1. 必要时,使用管理员账号 Admin01 和密码 P@ssw…

作者头像 李华