力扣hot100 滑动窗口最大值 单调队列

👨‍🏫 题目地址

🍻 AC code

java 复制代码
class Solution {
    public int[] maxSlidingWindow(int[] nums, int k)
	{
		int n = nums.length;
		int[] res = new int[n - k + 1];
//		单调递减队列
		int[] q = new int[n];// q数组维护的是元素在 nums 数组对应的下标
		int h = 0, t = -1;

		for (int i = 0; i < n; i++)// 枚举每一个窗口
		{
			if (h <= t && i - k + 1 > q[h])// 队头滑出窗口
				h++;

			while (h <= t && nums[q[t]] <= nums[i])// 处理新元素,维持队列单调递减
				t--;
			q[++t] = i;//新元素入队
			if (i >= k - 1)//窗口大小达到k才记录答案
				res[i - k + 1] = nums[q[h]];
		}
		return res;
	}

}
相关推荐
wuminyu2 小时前
Kafka中sendfile与mmap实现机制解析
java·linux·c语言·jvm·c++
GreenTea3 小时前
vLLM 与 SGLang KV Cache 底层实现机制深度调研报告
前端·后端·算法
考虑考虑3 小时前
Java实现hmacsha256加密算法
java·后端·java ee
Bode_20023 小时前
多资源规划(含生产调度、库存管理及产能规划)的创新优化算法
算法·调度
captain3763 小时前
▲网络原理(2)-TCP
java·服务器·网络·tcp/ip·java-ee
MetaLite4 小时前
SpringBoot接口分层规范-外网网关内部服务与参数边界
java·数据库·spring boot
Co_Hui4 小时前
Java 线程状态
java
土司大王4 小时前
LeetCode hot100——35.搜索插入位置:Java 二分模板、左闭右开区间与插入点分析
java·算法·leetcode
微三云生态系统架构师-彭丹4 小时前
远方好物S2B2C系统架构:一级分销与保证金托管的合规技术实现
人工智能·算法
土司大王4 小时前
LeetCode hot100——34.在排序数组中查找元素的第一个和最后一个位置:Java 二分模板、边界分析
java·算法·leetcode