【LeetCode】【HOT】239. 滑动窗口最大值

文章目录

  • 【LeetCode】【HOT】239. 滑动窗口最大值

package hot;import java.util.Arrays;
import java.util.Deque;
import java.util.LinkedList;public class Solution239 {public static void main(String[] args) {int[] nums = {1,3,-1,-3,5,3,6,7};Solution239 solution = new Solution239();System.out.println(Arrays.toString(solution.method(nums, 3)));}private int[] method(int[] nums, int k){int n = nums.length;Deque<Integer> deque = new LinkedList<>();for(int i = 0; i < k; i++){while(!deque.isEmpty() && nums[i] >= deque.peekLast()){deque.pollLast();}deque.offerLast(i);}int[] ans = new int[n - k + 1];ans[0] = nums[deque.peekFirst()];for(int i = k; i < n; i++){while(!deque.isEmpty() && nums[i] >= deque.peekLast()){deque.pollLast();}deque.offerLast(i);if(deque.peekFirst() <= i - k){deque.pollFirst();}ans[i - k + 1] = nums[deque.peekFirst()];}return ans;}
}//时间复杂度为 O(n)
//空间复杂度为 O(1)

【LeetCode】【HOT】239. 滑动窗口最大值(双向队列)相关推荐

  1. Suzy找到实习了吗Day 13 | 栈和队列结束啦 239. 滑动窗口最大值,347. 前 K 个高频元素

    day 13 239. 滑动窗口最大值 Python的Deque模块详解 solution 我复制的,好难不会写 347. 前 K 个高频元素(一刷我没有用栈,用的哈希法) solution(hash ...

  2. 力扣239. 滑动窗口最大值(自定义排序队列)

    239. 滑动窗口最大值 //实现功能:peek()取得队列的最大值,比最大值先添加进来的删除,后添加进来的保留 class Mydeque{Deque<Integer> deque;pu ...

  3. 单调区间之239.滑动窗口最大值

    单调区间 239. 滑动窗口最大值 这个题如果用普通的优先队列是有问题的,因为每次弹出去的不知道是上一个窗口的左边界还是这个窗口里的元素.我们要的是每次只弹出上一个窗口的左边界并且还能弹出最值,所以这 ...

  4. 代码随想录算法训练营day13 | 239. 滑动窗口最大值 | 347.前 K 个高频元素

    一.239. 滑动窗口最大值 from collections import dequeclass MyQueue: #单调队列(从大到小def __init__(self):self.queue = ...

  5. LeetCode 239. 滑动窗口最大值(双端队列+单调栈)

    文章目录 1. 题目信息 2. 解题 2.1 暴力法 2.2 双端队列法 1. 题目信息 给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧.你只可以看到在滑动窗口内 ...

  6. leetcode 239. 滑动窗口最大值(单调队列)

    给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧.你只可以看到在滑动窗口内的 k 个数字.滑动窗口每次只向右移动一位. 返回滑动窗口中的最大值. 示例 1: 输 ...

  7. LeetCode 239:滑动窗口最大值 思考分析

    给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧.你只可以看到在滑动窗口内的 k 个数字.滑动窗口每次只向右移动一位. 返回滑动窗口中的最大值. 进阶: 你能在线性 ...

  8. 2022-3-26 Leetcode 239.滑动窗口最大值

    class Solution {public int[] maxSlidingWindow(int[] nums, int k) {if(nums == null || nums.length < ...

  9. leetcode 239. Sliding Window Maximum | 239. 滑动窗口最大值(单调栈,窗口内最大最小值更新结构)

    题目 https://leetcode.com/problems/sliding-window-maximum/ 题解 窗口内最大最小值更新结构,单调栈问题,左神视频讲过,<程序员算法面试指南& ...

最新文章

  1. 持续集成之戏说Check-in Dance
  2. categories php,manage-categories.php
  3. leetcode之回溯backtracing专题5
  4. 「任性」的C语言之父:因拒付论文装订费错失博士学位,论文52年后重见天日...
  5. mysql表空间增长过快_Oracle表空间增长异常解决又一例
  6. Android使用Glide框架加载网络图片(解决无报错图片不显示问题)
  7. win10改成ahci后无法开机怎么办,win10开不了机
  8. mallplus多商户商城 让支付触手可及,封装了微信支付、QQ支付、支付宝支付、京东支付、银联支付常用的支付方式以及各种常用的接口
  9. 最新版本的000-919题库
  10. iOS 11.2 - 11.3.1 越狱教程
  11. Redis基础篇(一)
  12. Discuz showWindow函数解析
  13. 用c语言做个报数游戏和验证码系统
  14. 一个伪随机数生成算法
  15. 开关电源MOS管如何选择,参数是核心
  16. 《过得刚好》 郭德纲
  17. 东南西北十字图_word画东南西北方向图标 怎么在Word里绘制方向十字图标
  18. Squeeze-and-Excitation Networks论文翻译——中文版
  19. 如何把IDEA中设置像eclipse默认铺开包层次结构
  20. 用计算机求函数总分 平均分,老师如何在Excel学生成绩表中一键生成总分和各科平均分...

热门文章

  1. storm计数器(小白看懂系列)
  2. linux配置sftp-server,Ubuntu Server如何配置SFTP(建立用户监狱)
  3. 动态排名系统(整体二分)
  4. 2016年百度面试题
  5. SDUT 2766 小明传奇2
  6. maven配置篇之pom.xml
  7. magento导入导出Custom Options, Tier Prices and Grouped Products
  8. 给学习java web新手们的建议和推荐一些书籍
  9. ASP页面中访问基于.net的COM组件[转]
  10. k8s一个容器多个镜像_从零开始学K8s: 6.运行一个简单的容器