博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Deque - leetcode 【双端队列】
阅读量:5123 次
发布时间:2019-06-13

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

239.

//大概思路是用双向队列保存数字的下标,遍历整个数组,如果此时队列的首元素是i - k的话,表示此时窗口向右移了一步,则移除队首元素。然后比较队尾元素和将要进来的值,如果小的话就都移除,然后此时我们把队首元素加入结果中即可

vector<int> maxSlidingWindow(vector<int>& nums, int k) {
vector<int> res;
deque<int> q;
for(int i = 0; i < nums.size(); i++){
if(!q.empty() && q.front() == i - k) q.pop_front();
while(!q.empty() && nums[q.back()] < nums[i]) q.pop_back();
q.push_back(i);
if(i >= k - 1) res.push_back(nums[q.front()]);
}
return res;
}

转载于:https://www.cnblogs.com/93scarlett/p/6349040.html

你可能感兴趣的文章
包含对流环热,热流边界,等温边界的稳态热传导方程的FEM求解。
查看>>
然爸读书笔记(2014-5)----团队正能量
查看>>
【翻译】使用Ext JS设计响应式应用程序
查看>>
安卓学习笔记--获取网络连接状态
查看>>
leetcode 91. Decode Ways
查看>>
sql server数据库还原方法
查看>>
Android--Facebook Login without LoginButton
查看>>
CF某gym G
查看>>
web语义化与h5新增标签
查看>>
char 型数组与 char型字符串
查看>>
C# FTP 上传、下载、获取文件列表
查看>>
转:linux中fork()函数详解
查看>>
url中#号的作用
查看>>
Java中有关Null的9件事
查看>>
SpringBoot使用Jsp
查看>>
团队开发之团队介绍
查看>>
Linux下,C++编程论坛题目抽取
查看>>
贪吃蛇 WPF
查看>>
IOS微信登录封装类
查看>>
[UE4]更新UI的三种方式
查看>>