题解 | #滑动窗口的最大值#

滑动窗口的最大值

https://www.nowcoder.com/practice/1624bc35a45c42c0bc17d17fa0cba788

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param num int整型一维数组 
# @param size int整型 
# @return int整型一维数组
#
class Solution:
    def maxInWindows(self , num: List[int], size: int) -> List[int]:
        # write code here
        if size == 0:  # 不要忘记特判
            return []

        q = []
        res = []

        for i, x in enumerate(num):
            while len(q) > 0 and num[q[-1]] <= x:  # 尾部小于等于当前x,shandiao
                q = q[:-1]
            if len(q) > 0 and i - size + 1 > q[0]:  # 删去超过大小的头部
                q = q[1:]
            q.append(i)  # 加入
            if i >= size - 1:   # 超了就加入结果队列
                res.append(num[q[0]])
        return res

算法刷题记录 文章被收录于专栏

刷题,记录牛客的101

全部评论

相关推荐

1.自我介绍2.实习经历拷打3.评价自身优点4.自身缺点5.对岗位的理解6.职业规划7.业务场景8.反问&nbsp;总体还行,一面强度不大
落媛媛:同学,瞅瞅我司,医疗独角兽,校招刚开,名额有限,先到先得,我的主页最新动态,绿灯直达,免笔试~
查看7道真题和解析
点赞 评论 收藏
分享
西二旗混子:不需要在简历上下功夫了,把时间放在找岗位上,海投2000个
无实习如何秋招上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务