滑动窗口 leetcode_滑动窗口的概念

滑动窗口 leetcode_滑动窗口的概念原题链接给你一个整数数组 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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

原题链接

给你一个整数数组 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]
示例 3:

输入:nums = [1,-1], k = 1
输出:[1,-1]
示例 4:

输入:nums = [9,11], k = 2
输出:[11]
示例 5:

输入:nums = [4,-2], k = 2
输出:[4]

提示:

1 <= nums.length <= 105
-104 <= nums[i] <= 104
1 <= k <= nums.length

class Solution { 
   
public:
    vector<int> maxSlidingWindow(vector<int>& nums, int k) { 
   
       deque<int>dq;
       vector<int>res;
       for(int i = 0;i < nums.size();i ++){ 
   
           if(!dq.empty() && i - dq.front() == k)dq.pop_front();
           while(!dq.empty() && nums[dq.back()] <= nums[i])dq.pop_back();
           dq.push_back(i);
           if(i >= k - 1)res.push_back(nums[dq.front()]);
       }
       return res;
    }
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/168995.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 关于【ExecuteReader: Connection 属性尚未初始化】的错误提示解决方案「建议收藏」

    关于【ExecuteReader: Connection 属性尚未初始化】的错误提示解决方案「建议收藏」遇到这种错误,很大概率是因为缺少SqlCommand里的两个参数。找到【SqlCommandmycmd=newSqlCommand();】这条语句,SqlCommand()有两个带传入的参数:一个是定义查询语句的sql, 另一个是定义数据库连接的conn以下为部分代码片段,仅供理解:stringsql=”select*fromInformationwhereUsername='”+Username+”‘andPassword='”+Passw.

  • 深度学习之softmax损失函数[通俗易懂]

    深度学习之softmax损失函数[通俗易懂]深度学习之softmax损失函数归一化向量的每个元素均大于0小于1,且和为1,所以可以将其看作归属各个类别的概率。损失函数可以看作真实类别的负对数概率,希望其越小。importnumpyasnpD=784K=10N=128#scores是分值矩阵,每行代表一个样本scores=np.random.randn(N,K)print(scores.shape)#样本标签y=np.random.randint(K,size=N)print(y.shape)#指数化分值矩

  • Spring Boot第八章-Spring Data JPA(续)

    Spring Boot第八章-Spring Data JPA(续)

  • ‘gbk’ codec cant decode byte_can’t的完整形式

    ‘gbk’ codec cant decode byte_can’t的完整形式【报错】UnicodeDecodeError:‘gbk’codeccan’tdecodebyte0x80inposition13:illegalmultibytesequence方法一:尝试过但是对我无效参考文章:windowspython运行execjs中出现编码问题代码中是utf-8但是运行环境就是gbk方法二:把要读入的内容存到GBK格式的文…

  • 黑盒测试c语言用例,黑盒测试用例设计技术包括_测试用例包括什么_常用黑盒测试用例设计(4)…[通俗易懂]

    黑盒测试c语言用例,黑盒测试用例设计技术包括_测试用例包括什么_常用黑盒测试用例设计(4)…[通俗易懂]因此,可以把全部输入数据合理地划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,这样就可以用少量的代表性测试数据,来取得较好的测试结果。黑盒测试用例设计技术包括*是指对于程序的规格说明来说,是合理的有意义的输入数据构成的集合。利用它可以检验程序是否实现预先规定的功能和性能。在具体问题中,有效等价类可以是一个,也可以是多个。有效等价类*是指对于程序的规格说明…

  • SAP_FICO常用BAPI

    SAP_FICO常用BAPI1、检查创建凭证所需数据是否正确BAPI_ACC_DOCUMENT_CHECK;   2、创建凭证BAPI_ACC_DOCUMENT_POST。

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号