首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

滑动窗口最大值

给定一个整数数组nums和一个整数k,找出在滑动窗口内大小为k的所有连续子数字中的最大值。

示例输入:

示例输出:

[3 3 5 5 6 7]

解题思路:

使用双端队列(deque)维护滑动窗口内的元素,并将当前窗口的最大值存储在结果数组中。从左到右遍历数组,并将每个元素添加到 deque 的末尾。然后,在保持 deque 中的元素数量不超过 k 的情况下,从deque的开头删除较小的元素。这样,deque的第一个元素就是当前窗口的最大值。将该元素添加到输出数组中,并继续向右移动窗口并重复此过程。

以下是使用Golang实现的代码:

测试代码:

结果与示例输出相同。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230604A06MYV00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券