2020-05-11

1.题目描述

滑动窗口的最大值

2.题解

使用双端队列维护一个递减的队列

3.代码

class Solution {
public:vector<int> maxSlidingWindow(vector<int>& nums, int k) {vector<int> res;int l=nums.size();if (!l) return res;  deque<int> myqueue; // 双端队列for (int i=0;i<l;i++){ // 维护一个递减的队列,存放的是元素所对应的下标if (!myqueue.empty()&&myqueue.front()<=i-k){myqueue.pop_front(); // 当前最大的元素的下标不属于当前滑动窗口内}while(!myqueue.empty()&&nums[myqueue.back()]<=nums[i]){ // 队列中小于当前值的元素出队列myqueue.pop_back();}myqueue.push_back(i); // 进队列if (i>=k-1) res.push_back(nums[myqueue.front()]);}return res;}
};
class Solution {
public:vector<int> maxSlidingWindow(vector<int>& nums, int k) {vector<int> res;int l=nums.size();deque<int> myque; // 维护一个递减的队列for (int i=0;i<l;i++){while (!myque.empty()&&nums[myque.back()]<=nums[i]){myque.pop_back(); // 出队列}myque.push_back(i); // 入队列if (myque.front()<=i-k) myque.pop_front();if (i>=k-1) res.push_back(nums[myque.front()]);}return res;}
};

面试题59 - I. 滑动窗口的最大值/239. 滑动窗口最大值相关推荐

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

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

  2. python【力扣LeetCode算法题库】面试题59 - II- 队列的最大值

    面试题59 - II. 队列的最大值 请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value.push_back 和 pop_front 的时间复杂度都是O(1) ...

  3. 最大值_Leetcode2 | 滑动窗口最大值(Q239)

    :) Sliding Window Maximum Q 239 今天也是好心情 Problem Description ··· Difficulty··· You are given an array ...

  4. 面试题59 - II. 队列的最大值

    2020-05-15 1.题目描述 队列的最大值 2.题解 这个题目有点像滑动窗口求最大值以及栈的最大值的结合体,我们可以模仿滑动窗口求最大值,开辟一个 双端队列来求解最大值. 3.代码 class ...

  5. 【LeetCode】【HOT】239. 滑动窗口最大值(双向队列)

    [LeetCode][HOT]239. 滑动窗口最大值 文章目录 [LeetCode][HOT]239. 滑动窗口最大值 package hot;import java.util.Arrays; im ...

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

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

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

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

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

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

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

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

最新文章

  1. 隐形需求 软件测试,从开发角度聊聊如何洞悉隐性需求
  2. Android Weekly Notes Issue #225
  3. 企业微信H5_消息推送概述,发送应用消息示例
  4. 有限自动机的构造与识别
  5. java锁的概念,Java ReentrantLock锁机制概念篇
  6. 开关造成的毛刺_干冰清洗机模具清洗机干冰去毛刺机注意事项
  7. jdbc连接oracle_Oracle数据库性能监控|使用SiteScope 监控Oracle
  8. CSDN招人啦!快来看看,有你想要的职位吗?
  9. c mysql导入数据_MySQL 数据导入
  10. iStack详解(二)——堆叠连接方式堆叠拓扑变动处理
  11. Java基础语法实例(2)——实习第二天
  12. plsqldev显示语言有问题
  13. 2017年微软暑期实习PM产品经理面经
  14. 第二篇数模论文——垂钓问题
  15. 直播 | Apache Kylin × Apache Hudi Meetup
  16. uni-appの发展和应用
  17. 电子版产品手册如何制作?简单的方法来了
  18. Lagrange 四平方定理
  19. Win11正式版具体安装教程
  20. [工具]-WIKI/文档编写相关软件

热门文章

  1. mysql hint use force ignore_MySQL实时在线备份恢复方案
  2. 推荐几个常用的生物通路数据库
  3. 转载---Adaboost学习记录
  4. jsonpath 判断是否包含_mysql json 判断某个key是否存在
  5. NOIP1996复赛 普及组 第二题 python
  6. 1.7 编程基础之字符串 25 最长最短单词 python
  7. 游戏开发使用的各个主流引擎对比
  8. startsBBS在nginx环境下的部署,出现布局错误和验证码不能显示的解决方法
  9. java redis hash_我爱java系列---【redis中如何存取hash类型的值(key field value)】
  10. 计算机图形学Web前端笔记-浏览器中心点转场景坐标理论及实现(two.js)