0
点赞
收藏
分享

微信扫一扫

LeetCode(剑指 Offer)- 59 - I. 滑动窗口的最大值


题目链接:​​点击打开链接​​

题目大意:略。

解题思路:略。

相关企业

  • 华为
  • 字节跳动
  • 微软(Microsoft)
  • Shopee
  • 优步(Uber)
  • 谷歌(Google)
  • 高盛集团(Goldman Sachs)
  • Facebook
  • 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;
}
}


举报

相关推荐

0 条评论