滑动窗口最大值

滑动窗口最大值

题目如下

在这里插入图片描述

代码如下

public class Solution
{   
 public int[] MaxSlidingWindow(int[] nums, int k)  
 {      
   int len=nums.Length;  
   if(len==0)     
      return nums;   
   int[] max=new int [len-k+1];
   MyCircularDeque que=new MyCircularDeque(len);
   for(int i=0;i<len;i++)       
   {    
     while(que.IsEmpty()==false && nums[que.GetRear()] <= nums[i])       
     {      
        que.DeleteLast();
    }       
    que.InsertLast(i);    
  if (que.GetFront() <= i - k)         
  {             
     que.DeleteFront();     
  }       
  if (i + 1 >= k)           
  {              
     max[i + 1 - k] = nums[que.GetFront()];    
  }    
 }    
 return max;      
 }}

利用循环双端队列来实现本次操作,关于循环队列代码的编写在博文中有,不在此重复展示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值