news 2026/7/5 9:15:22

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/7/4 10:57:46

50、多线程编程:任务控制与并行迭代

多线程编程:任务控制与并行迭代 1. 任务异常处理 在多线程编程中,任务的异常处理是一个重要的方面。当任务完成时,如果存在未处理的异常,需要合适的机制来捕获和处理这些异常。 1.1 未处理异常的抛出 任务执行过程中产生的未处理异常会被抑制,直到调用任务完成成员(如…

作者头像 李华
网站建设 2026/7/4 13:04:52

51、多线程编程全解析

多线程编程全解析 在软件开发中,多线程编程是提高程序性能和响应能力的关键技术。它允许程序同时执行多个任务,充分利用多核处理器的优势。下面将详细介绍多线程编程的多个方面,包括并行迭代执行、异常处理、取消操作、并行结果和选项,以及在不同场景下的应用。 并行迭代…

作者头像 李华
网站建设 2026/7/5 5:29:56

ML Workspace终极指南:5分钟搭建专业级机器学习环境

ML Workspace终极指南&#xff1a;5分钟搭建专业级机器学习环境 【免费下载链接】ml-workspace &#x1f6e0; All-in-one web-based IDE specialized for machine learning and data science. 项目地址: https://gitcode.com/gh_mirrors/ml/ml-workspace ML Workspace是…

作者头像 李华
网站建设 2026/7/4 0:32:15

Langchain-Chatchat DevOps运维知识整合实践

Langchain-Chatchat DevOps运维知识整合实践 在现代DevOps实践中&#xff0c;一个常见的痛点是&#xff1a;当系统突发故障时&#xff0c;值班工程师往往需要花费大量时间翻阅分散的文档——可能是几周前某位同事写下的应急处理记录&#xff0c;也可能是藏在某个Wiki角落里的配…

作者头像 李华
网站建设 2026/7/5 0:05:40

Jetpack Compose响应式布局实战:构建自适应多屏Android应用

Jetpack Compose响应式布局实战&#xff1a;构建自适应多屏Android应用 【免费下载链接】pokedex-compose &#x1f5e1;️ Pokedex Compose demonstrates modern Android development with Jetpack Compose, Hilt, Coroutines, Flow, Jetpack (Room, ViewModel), and Material…

作者头像 李华
网站建设 2026/7/3 23:46:59

端侧AI部署技术深度解析:从架构原理到行业实战

端侧AI部署技术深度解析&#xff1a;从架构原理到行业实战 【免费下载链接】glm-edge-4b-chat 项目地址: https://ai.gitcode.com/zai-org/glm-edge-4b-chat 随着人工智能技术向终端设备加速渗透&#xff0c;端侧AI部署正成为推动产业智能化转型的核心引擎。智谱GLM-Ed…

作者头像 李华