当前位置:网站首页>[sword finger offer] 59 - I. maximum value of sliding window
[sword finger offer] 59 - I. maximum value of sliding window
2022-07-07 18:37:00 【LuZhouShiLi】
The finger of the sword Offer 59 - I. Maximum sliding window
subject
Given an array nums And the size of the sliding window k, Please find the maximum value in all sliding windows .
Ideas
- Traverse the elements in a given array , If the queue is not empty and the currently inspected element is greater than or equal to the end of the queue element , Then remove the tail element , Until the queue is empty or the current review element is smaller than the new tail element
- When the subscript of the first element is smaller than the left boundary of the sliding window Left Indicates that the team leader element no longer belongs to the sliding window , Remove it from the team head element
- Because array subscript from 0 Start , So when the right edge of the window right + 1>= k, It means that the window has been formed . At this time, the first element of the queue is the maximum value in the window .
Code
class Solution {
public int[] maxSlidingWindow(int[] nums, int k) {
if(nums.length == 0)
{
return new int[0];
}
// Number of windows
int[] res = new int[nums.length - k + 1];
LinkedList<Integer> queue = new LinkedList<>();
// Traverse the elements in the array , right Represents the right boundary of the sliding window
for(int right = 0; right < nums.length; right++)
{
// If the queue is not empty And the current element is greater than or equal to the tail element Remove the tail element
// until The queue is empty Or the current element is smaller than the new tail element
while(!queue.isEmpty() && nums[right] >= nums[queue.peekLast()]){
queue.removeLast();
}
// Storage element subscript
queue.addLast(right);
// Calculate the left boundary of the window
int left = right - k + 1;
// When the subscript of the first element is less than the left boundary of the sliding window Left
// Indicates that the team leader element is no longer sliding inside the window Remove it from the head of the team
if(queue.peekFirst() < left)
{
queue.removeFirst();
}
// From below 0 Start So when right + 1 >= k It indicates that the sliding window has been formed The first element of the queue is the maximum value of the window
if(right + 1 >= k)
{
res[left] = nums[queue.peekFirst()];// Store the team leader element in res in
}
}
return res;
}
}
边栏推荐
- Using stored procedures, timers, triggers to solve data analysis problems
- [trusted computing] Lesson 10: TPM password resource management (II)
- Test for 3 months, successful entry "byte", my interview experience summary
- Static routing configuration
- Interviewer: why is the page too laggy and how to solve it? [test interview question sharing]
- Simple configuration of single arm routing and layer 3 switching
- C语言中匿名的最高境界
- idea彻底卸载安装及配置笔记
- 通过 Play Integrity API 的 nonce 字段提高应用安全性
- Yearning-SQL审核平台
猜你喜欢
zdog. JS rocket turn animation JS special effects
Skills of embedded C language program debugging and macro use
讨论| 坦白局,工业 AR 应用为什么难落地?
你真的理解粘包与半包吗?3分钟搞懂它
能同时做三个分割任务的模型,性能和效率优于MaskFormer!Meta&UIUC提出通用分割模型,性能优于任务特定模型!开源!...
debian10系统问题总结
Tear the Nacos source code by hand (tear the client source code first)
万字保姆级长文——Linkedin元数据管理平台Datahub离线安装指南
RIP和OSPF的区别和配置命令
Taffydb open source JS database
随机推荐
The performance and efficiency of the model that can do three segmentation tasks at the same time is better than maskformer! Meta & UIUC proposes a general segmentation model with better performance t
“解密”华为机器视觉军团:华为向上,产业向前
debian10编译安装mysql
Learn to make dynamic line chart in 3 minutes!
2022年理财有哪些产品?哪些适合新手?
Kirk Borne的本周学习资源精选【点击标题直接下载】
Yunjing network technology interview question [Hangzhou multi tester] [Hangzhou multi tester _ Wang Sir]
Disk storage chain B-tree and b+ tree
Pro2: modify the color of div block
Performance test process and plan
2022年理财产品的一般收益率是多少?
What is the general yield of financial products in 2022?
[论文分享] Where’s Crypto?
Taffydb open source JS database
Nunjuks template engine
4种常见的缓存模式,你都知道吗?
低代码助力企业数字化转型会让程序员失业?
Automated testing: a practical skill that everyone wants to know about robot framework
Kubernetes DevOps CD工具对比选型
体总:安全有序恢复线下体育赛事,力争做到国内赛事应办尽办