当前位置:网站首页>剑指offer基础版 ---- 第27天
剑指offer基础版 ---- 第27天
2022-07-31 05:09:00 【米兰的小红黑】
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 j = 0, i = 1 - k; j < nums.length; i++, j++) {
// 删除 deque 中对应的 nums[i-1]
if(i > 0 && deque.peekFirst() == nums[i - 1])
deque.removeFirst();
// 保持 deque 递减
while(!deque.isEmpty() && deque.peekLast() < nums[j])
deque.removeLast();
deque.addLast(nums[j]);
// 记录窗口最大值
if(i >= 0)
res[i] = deque.peekFirst();
}
return res;
}
}
class MaxQueue {
int[] q = new int[20000];
int begin = 0, end = 0;
public MaxQueue() {
}
public int max_value() {
int ans = -1;
for (int i = begin; i != end; ++i) {
ans = Math.max(ans, q[i]);
}
return ans;
}
public void push_back(int value) {
q[end++] = value;
}
public int pop_front() {
if (begin == end) {
return -1;
}
return q[begin++];
}
}
/**
* Your MaxQueue object will be instantiated and called as such:
* MaxQueue obj = new MaxQueue();
* int param_1 = obj.max_value();
* obj.push_back(value);
* int param_3 = obj.pop_front();
*/
边栏推荐
猜你喜欢
Linux系统安装mysql(rpm方式安装)
MySQL8.0安装教程,在Linux环境安装MySQL8.0教程,最新教程 超详细
为什么要用Flink,怎么入门使用Flink?
CentOS7 —— yum安装mysql
sql语句-如何以一个表中的数据为条件据查询另一个表中的数据
mysql uses on duplicate key update to update data in batches
MySQL8--Windows下使用压缩包安装的方法
Centos7 install mysql5.7 steps (graphical version)
基于web3.0使用钱包Metamask的三方登陆
The interviewer asked me TCP three handshake and four wave, I really
随机推荐
MySQL-如何分库分表?一看就懂
mysql存储过程
分布式事务处理方案大 PK!
mysql stored procedure
mysql uses on duplicate key update to update data in batches
C语言教程(二)-printf及c自带的数据类型
110道 MySQL面试题及答案 (持续更新)
STM32 - DMA
Information System Project Manager Core Test Site (55) Configuration Manager (CMO) Work
面试官,不要再问我三次握手和四次挥手
Redis进阶 - 缓存问题:一致性、穿击、穿透、雪崩、污染等.
剑指offer专项突击版 --- 第 3 天
一文了解大厂的DDD领域驱动设计
C语言如何分辨大小端
MySQL optimization slow log query
Workflow番外篇
DVWA之SQL注入
Flink sink ES 写入 ES(带密码)
TOGAF之架构标准规范(一)
Unity Framework Design Series: How Unity Designs Network Frameworks