博客
关于我
力扣239. 滑动窗口最大值
阅读量:361 次
发布时间:2019-03-05

本文共 1046 字,大约阅读时间需要 3 分钟。

给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。

返回滑动窗口中的最大值。

示例 1:

输入:nums = [1,3,-1,-3,5,3,6,7], k = 3

输出:[3,3,5,5,6,7]
解释:

滑动窗口的位置                最大值---------------               -----[1  3  -1] -3  5  3  6  7       3 1 [3  -1  -3] 5  3  6  7       3 1  3 [-1  -3  5] 3  6  7       5 1  3  -1 [-3  5  3] 6  7       5 1  3  -1  -3 [5  3  6] 7       6 1  3  -1  -3  5 [3  6  7]      7

示例 2:

输入:nums = [1], k = 1

输出:[1]
示例 3:

输入:nums = [1,-1], k = 1

输出:[1,-1]
示例 4:

优先队列

class Solution {   public:    vector
maxSlidingWindow(vector
& nums, int k) { int n = nums.size(); priority_queue
> q; for (int i = 0; i < k; ++i) { q.emplace(nums[i], i); } vector
ans = { q.top().first}; for (int i = k; i < n; ++i) { q.emplace(nums[i], i); while (q.top().second <= i - k) { q.pop(); } ans.push_back(q.top().first); } return ans; }};

转载地址:http://ykxg.baihongyu.com/

你可能感兴趣的文章
我编程,我快乐—程序员职业规划之道
查看>>
谷歌浏览器如何设置不阻止弹窗弹出
查看>>
剑指 Offer 29. 顺时针打印矩阵
查看>>
Web基础应用 NFS服务基础 触发挂载
查看>>
create-react-app路由的实现原理
查看>>
PSI值
查看>>
海思Hi3531DV100开发环境搭建
查看>>
Xilinx Zynq pl353-nand使用
查看>>
JavaScript上传下载文件
查看>>
QWaitCondition把异步调用封装成同步调用
查看>>
windows驱动开发-编译错误集合
查看>>
Linux驱动开发之PCIe Host驱动
查看>>
Vue.js Element Basic组件使用
查看>>
android MVP模式
查看>>
android 头像选择,裁剪全套解决方案,你值得拥有!
查看>>
MapReduce
查看>>
springboot swagger2
查看>>
shell(十)case的几个典型应用
查看>>
Linux环境变量配置错误导致命令不能使用(杂谈)
查看>>
openstack安装(六)镜像glance服务安装
查看>>