美文网首页
59 滑动窗口的最大值

59 滑动窗口的最大值

作者: 土味老猪 | 来源:发表于2018-07-03 21:11 被阅读0次

CSDN作者独孤呆博
写的很好,贴一下方便自己以后复习。
···class Solution:
def maxInWindows(self, num, size):
# 如果数组 num 不存在,则返回 []
if not num:
return []
# 如果滑动窗口的大小大于数组的大小,或者 size 小于 0,则返回 []
if size > len(num) or size <1:
return []

    # 如果滑动窗口的大小为 1 ,则直接返回原始数组
    if size == 1:
        return num

    # 存放最大值,次大值的数组,和存放输出结果数组的初始化
    temp = [0]
    res = []

    # 对于数组中每一个元素进行判断
    for i in range(len(num)):
        # 判断第 i 个元素是否可以加入 temp 中
        # 如果比当前最大的元素还要大,清空 temp 并把该元素放入数组
        # 首先判断当前最大的元素是否过期
        if i -temp[0] > size-1:
            temp.pop(0)
        # 将第 i 个元素与 temp 中的值比较,将小于 i 的值都弹出
        while (len(temp)>0 and num[i] >= num[temp [-1]]):
            temp.pop()
        # 如果现在 temp 的长度还没有达到最大规模,将元素 i 压入
        if len(temp)< size-1:
            temp.append(i)
        # 只有经过一个完整的窗口才保存当前的最大值
        if i >=size-1:
            res.append(num[temp [0]])
    return res

s = Solution()
A = [2,3,4,2,6,2,5,1]
print(s.maxInWindows(A,3))

相关文章

  • Leetcode经典中等题集

    剑指 Offer 59 - I. 滑动窗口的最大值[https://leetcode.cn/problems/hu...

  • 队列的最大值

    滑动窗口的最大值给定一个数组和滑动窗口的最大值,找出所有滑动窗口里的最大值。例如输入[2, 3, 4, 2, 6,...

  • 59 滑动窗口的最大值

    CSDN作者独孤呆博写的很好,贴一下方便自己以后复习。···class Solution:def maxInWin...

  • 剑指offer | 滑动窗口的最大值

    滑动窗口的最大值 给定一个数组和滑动窗口的大小,请找出所有滑动窗口里的最大值 示例输入:{2, 3, 4, 2, ...

  • 59-滑动窗口最大值、队列的最大值

    1. 滑动窗口的最大值 给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。 示例:输入:...

  • JZ-064-滑动窗口的最大值

    滑动窗口的最大值 题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,...

  • 剑指Offer66题

    1、滑动窗口的最大值 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4...

  • 面试题59(剑指offer)--队列的最大值

    题目一: 滑动窗口的最大值。给定一个数组和滑动窗口的大小,请找出所有滑动窗口里的最大值。例如,如果输入数组{2,3...

  • 剑指Offer Java版 面试题59:队列的最大值

    题目一:滑动窗口的最大值。给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3...

  • 面试题59:队列的最大值

    题目 滑动窗口的最大值给定一个数组和滑动窗口的大小,请找出所有滑动窗口里的最大值。例如,如果输入数组{2,3,4,...

网友评论

      本文标题:59 滑动窗口的最大值

      本文链接:https://www.haomeiwen.com/subject/crajuftx.html