LeetCode(算法)- 239. 滑动窗口最大值
Posted 程序员牧码
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode(算法)- 239. 滑动窗口最大值相关的知识,希望对你有一定的参考价值。
题目链接:点击打开链接
题目大意:略。
解题思路:略。
相关企业
- 华为
- 字节跳动
- 微软(Microsoft)
- Shopee
- 优步(Uber)
- 谷歌(Google)
- 高盛集团(Goldman Sachs)
- DoorDash
- 亚马逊(Amazon)
AC 代码
class Solution
public int[] maxSlidingWindow(int[] nums, int k)
if(nums.length == 0 || k == 0) return new int[0];
Deque<Integer> deque = new LinkedList<>();
int[] res = new int[nums.length - k + 1];
// 未形成窗口
for(int i = 0; i < k; i++)
while(!deque.isEmpty() && deque.peekLast() < nums[i])
deque.removeLast();
deque.addLast(nums[i]);
res[0] = deque.peekFirst();
// 形成窗口后
for(int i = k; i < nums.length; i++)
if(deque.peekFirst() == nums[i - k])
deque.removeFirst();
while(!deque.isEmpty() && deque.peekLast() < nums[i])
deque.removeLast();
deque.addLast(nums[i]);
res[i - k + 1] = deque.peekFirst();
return res;
以上是关于LeetCode(算法)- 239. 滑动窗口最大值的主要内容,如果未能解决你的问题,请参考以下文章