首页 > 其他分享 >【LC】239. 滑动窗口最大值

【LC】239. 滑动窗口最大值

时间:2024-11-27 18:31:18浏览次数:8  
标签:窗口 LC nums int 最大值 239 数组 滑动

题目描述:

给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。

返回 滑动窗口中的最大值 

示例 1:

输入:nums = [1,3,-1,-3,5,3,6,7], k = 3
输出:[3,3,5,5,6,7]
解释:
滑动窗口的位置                最大值
---------------               -----
[1  3  -1] -3  5  3  6  7       3
 1 [3  -1  -3] 5  3  6  7       3
 1  3 [-1  -3  5] 3  6  7       5
 1  3  -1 [-3  5  3] 6  7       5
 1  3  -1  -3 [5  3  6] 7       6
 1  3  -1  -3  5 [3  6  7]      7

示例 2:

输入:nums = [1], k = 1
输出:[1]

题解:

class Solution{

    public int[] maxSlidingWindow(int[] nums, int k) {
        Deque<Integer> q = new ArrayDeque<>();
        int n = nums.length;
        int[] ans = new int[n - k + 1];
        for (int i = 0; i < n; i++) {
            while (!q.isEmpty() && nums[q.peekLast()] <= nums[i]) {
                q.pollLast();
            }
            q.offerLast(i);
            if (i >= k - 1) {
                while (q.peekFirst() <= i - k) {
                    q.pollFirst();
                }
                ans[i - k + 1] = nums[q.peekFirst()];
            }
        }
        return ans;
    }

标签:窗口,LC,nums,int,最大值,239,数组,滑动
From: https://blog.csdn.net/Chuanqi_Pang/article/details/144036619

相关文章

  • 【RAG 项目实战 07】替换 ConversationalRetrievalChain(单轮问答)
    【RAG项目实战07】替换ConversationalRetrievalChain(单轮问答)NLPGithub项目:NLP项目实践:fasterai/nlp-project-practice介绍:该仓库围绕着NLP任务模型的设计、训练、优化、部署和应用,分享大模型算法工程师的日常工作和实战经验AI藏经阁:https://gitee.com/fasterai......
  • 代码随想录算法训练营第十一天(LeetCode150.逆波兰表达式求值;LeetCode239.滑动窗口最大
    LeetCode150.逆波兰表达式求值题目链接:逆波兰表达式求值题目链接思路主要是要理解逆波兰表达式的定义,在理解了逆波兰表达式的定义后,使用栈就可以直接做了。逆波兰表达式是一种后缀表达式,所谓后缀就是指运算符写在后面。平常使用的算式则是一种中缀表达式,如(1+2)......
  • H5流媒体播放器EasyPlayer.js播放器关于苹果iOS系统webglcontextlost的问题(ios内核的b
    随着流媒体技术的迅速发展,H5流媒体播放器已成为现代网络视频播放的重要工具。其中,EasyPlayer.js视频流媒体播放器作为一款功能强大的H5播放器,凭借其全面的协议支持、多种解码方式以及跨平台兼容性,赢得了广泛的关注和应用。有时苹果iOS系统会出现webglcontextlost的问题(ios内核的......
  • KMP与Lca应用——最长公共border
    问题提出给定你一个字符串,有\(n\)次询问,每次给出两个数\(a\),\(b\),希望求出该字符串以\(a\),\(b\)下标结尾的两段前缀的最长公共\(border\)。(一个字符串的\(border\)同时为其后缀与前缀)初步分析首先我们需要考虑一个字符串的最长\(border\)求法,毕竟需要求的是两字符串的最长公......
  • 数组-求最大值及其下标
    //求最大值及其下标#include<stdio.h>//引入标准输入输出库intmain()//主函数,程序从这里开始执行{inti,n,max,imax=0;//定义循环变量i,数组长度n,最大值max和最大值下标imaxscanf("%d",&n);//从标准输入读取数组长度ninta[n];//声明一个......
  • No toolchains found in the NDK toolchains folder for ABI with prefix: arm-linux-
    一、报错信息二、解决方法1、打开SDKManager,卸载本地NDK。2、然后点击Apply——>OK,重新启动Android工程,成功运行。思想成体系,培养成意识,自律成习惯。我强烈推荐4本可以改变命运的经典著作:《寿康宝鉴》在线阅读白话文《欲海回狂》在线阅读白话文《阴律无情》在线阅......
  • SLCP认证检测周期全解析:深入了解流程与时间框架
    一、引言在当今全球化的商业环境中,消费者、投资者和监管机构对企业在社会与劳工权益方面的表现关注度日益提升。企业为了满足市场需求、维护品牌声誉并确保供应链的可持续性,积极寻求各类社会责任认证。SLCP认证作为一项重要的社会与劳工整合项目认证,其检测周期的长短直接影......
  • 代码随想录算法训练营第十一天|LC150.逆波兰表达式求值|LC239.滑动窗口最大值|LC347.
    150.逆波兰表达式求值-力扣(LeetCode)题目要求:    1、整数除法只保留整数部分;    2、该表达式总会得出有效数值且部存在除数为0的情况;    3、逆波兰表达式:是一种后缀表达式,所谓后缀就是指运算符写在后面。fromtypingimportListfromoperato......
  • MM模块-专题方案-跨公司STO移动类型确定逻辑(交货单类型NLCC+项目类别NLC+计划行类别N
    业务说明:跨公司STO移动类型确定过程。STO移动类型确定逻辑:配置1:定义STO交货类型(交货类别:NLCC)配置2:在交货时定义项目类别确定(项目类别:NLC)配置3:分配计划行类别(SD模块)(计划行类别:NC)配置4:定义计划行类别(SD模块)(计划行类别NC对应移动类型:643或645)配置1:定义STO交货类型(Delive......
  • 【LC】2778. 特殊元素平方和
    题目描述:给你一个下标从 1 开始、长度为 n 的整数数组 nums 。对 nums 中的元素 nums[i] 而言,如果 n 能够被 i 整除,即 n%i==0 ,则认为 num[i] 是一个 特殊元素 。返回 nums 中所有 特殊元素 的 平方和 。示例1:输入:nums=[1,2,3,4]输出:21解......