首页 > 编程语言 >算法题-生成窗口最大值数组

算法题-生成窗口最大值数组

时间:2023-07-09 16:11:26浏览次数:43  
标签:index nums int 最大值 queue ++ 算法 result 数组

https://leetcode.cn/problems/sliding-window-maximum/

 

class Solution {
    public int[] maxSlidingWindow(int[] nums, int k) {
   if(nums==null||nums.length==0||k<0){
            return null;
        }
        int[] result= new int [nums.length-k+1];
        LinkedList<Integer> queue = new LinkedList<Integer>();
        int index = 0;
        for(int i = 0 ; i < nums.length;i++){
                    while (!queue.isEmpty()&&nums[queue.peekLast()]<=nums[i]){
                        queue.pollLast();
                    }
                    queue.addLast(i);
                    if(i-k==queue.peekFirst()){
                        queue.pollFirst();
                    }
                    if(i>=k-1){
                        result[index++] = nums[queue.peekFirst()];
                    }         
        }
        return result;
    }
}

 

标签:index,nums,int,最大值,queue,++,算法,result,数组
From: https://www.cnblogs.com/chenyangwang/p/17538864.html

相关文章

  • 四种语言刷算法之子集 II
    力扣90. 子集II1、C/***Returnanarrayofarraysofsize*returnSize.*Thesizesofthearraysarereturnedas*returnColumnSizesarray.*Note:Bothreturnedarrayand*columnSizesarraymustbemalloced,assumecallercallsfree().*/voidbacktr......
  • 1 数组
    数组1数组理论基础数组是存放在连续内存空间的相同类型数据的集合数组下标都是从0开始的。数组内存空间的地址是连续的正是因为数组的在内存空间的地址是连续的,所以我们在删除或者增添元素的时候,就难免要移动其他元素的地址。在C++中二维数组在地址空间上是连......
  • 所有子数组中不平衡数字之和
    一个长度为n下标从0开始的整数数组arr的不平衡数字定义为,在sarr=sorted(arr)数组中,满足以下条件的下标数目:0<=i<n-1sarr[i+1]-sarr[i]>1这里,sorted(arr)表示将数组arr排序后得到的数组。给你一个下标从0开始的整数数组nums,请你返回它所有子数......
  • 哨兵 查找算法_右手 深度
    1importnumpyasnp23#生成一个10*10全为0的array45maze=np.zeros((10,10),dtype=int)6#给array使用数字9包围7#添加行8maze=np.insert(maze,0,np.full(10,9,dtype=int),axis=0)9maze=np.insert(maze,len(maze),np.full(10,9,dt......
  • Miller_Rabin算法快速判断大数是否为素数
    Miller_Rabin算法快速判断大数是否为素数并不是绝对,这只是一种判断大概率为素数的方法首先根据费马小定理有:\(a^{p-1}=1\pmodp(a不为p的倍数且p不是素数)\)又因为\(p\)为素奇数,所以\(p-1\)为偶数,表示为\(p-1=2^dm\)所以有\(a^{p-1}-1=0\pmodp\)\(a^{2^dm}-1=0\pmodp\)\((......
  • js 如何使用 join() 方法将数组的所有元素组成一个字符串。
    <html><body><scripttype="text/javascript">vararr=newArray(3);arr[0]="George"arr[1]="John"arr[2]="Thomas"document.write(arr.join());document.write("<br/>&q......
  • 牛客练习赛113 D 小红的数组操作(hard version)
    题目要求求出最小的总代价使得平均数为整数,转换式子可得实际就是求出a,b使得(a*x-b*y+sum)%n==0且a*p+b*q要最小,平均值的为sum/n,因此对sum进行操作使其成为n的倍数即可(a*x-b*y+sum)%n==0=>((a*x+sum)%n-b*y%n)%n==0因为(a*x+sum)%n<n,b*y%n<n,因此要想二者差求余数为0一定为(......
  • KMP算法
    一.引入(洛谷P3375)给出两个字符串\(s_1\)和\(s_2\),若\(s_1\)的区间\([l,r]\)子串与\(s_2\)完全相同,则称\(s_2\)在\(s_1\)中出现了,其出现位置为\(l\)。现在请你求出\(s_2\)在\(s_1\)中所有出现的位置。\(s1\)称为文本串,\(s2\)称为模板链二.简陋版本不难......
  • 长度最小的子数组滑动窗口
    /***给定一个含有n个正整数的数组和一个正整数s,找出该数组中满足其和≥s的长度最小的连续子数组,并返回其长度。如果不存在符合条件的子数组,返回0。**长度最小的子数组*示例:**输入:s=7,nums=[2,3,1,2,4,3]输出:2解释:子数......
  • Pollard-Rho 分解算法学习笔记
    Pollard-Rho分解算法Pollard-Rho算法是一种用于快速找到\(n\)的一个非平凡约数的方法。生日悖论在不少于\(23\)个人中至少有两人生日相同的概率已经大于\(50\%\)。更一般的形式,随机选取在\(\left[1,N\right]\)范围内的整数,期望到第\(O(\sqrt{N})\)个出现重复。用下面的方......