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

滑动窗口的最大值

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

双端队列的使用

from collections import deque
class Solution:
    def maxInWindows(self , num: List[int], size: int) -> List[int]:
        # write code here
        res = []
        len_num = len(num)
        dq = deque()
        for i in range(len_num):
            if i <= size - 1:
                while dq and num[dq[-1]] < num[i]:
                    dq.pop() 
                dq.append(i)
                if i == size - 1:
                    res.append(num[dq[0]])
            else:
                # 当对尾下标对应的数组值小于新加入的对象时,删除队尾
                while dq and (num[dq[-1]] < num[i]):
                    dq.pop()
                # 当对头下标超出窗口的范围时,删除对头
                while dq and (dq[0] < i - size + 1):
                    dq.popleft()
                print(dq)
                dq.append(i)
                res.append(num[dq[0]])
        return res
全部评论

相关推荐

11-24 00:11
已编辑
广东工业大学 算法工程师
避雷深圳&nbsp;&nbsp;yidao,试用期&nbsp;6&nbsp;个月。好嘛,试用期还没结束,就直接告诉你尽快找下一家吧,我谢谢您嘞
牛客75408465号:笑死,直属领导和 hr 口径都没统一,各自说了一些离谱的被裁理由,你们能不能认真一点呀,哈哈哈哈哈😅😅😅
点赞 评论 收藏
分享
11-15 18:39
已编辑
西安交通大学 Java
全村最靓的仔仔:卧槽,佬啥bg呢,本也是西交么
点赞 评论 收藏
分享
有工作后先养猫:太好了,是超时空战警,我们有救了😋
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-21 17:16
科大讯飞 算法工程师 28.0k*14.0, 百分之三十是绩效,惯例只发0.9
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务