• leetcode-hard-array-239. Sliding Window Maximum


    mycode  89.27%

    class Solution(object):
        def maxSlidingWindow(self, nums, k):
            """
            :type nums: List[int]
            :type k: int
            :rtype: List[int]
            """
      
            if k == 0 or nums == [] or k > len(nums): return []
            
            length = len(nums)
            temp = []
            for j in range(0,k):
                temp.append(nums[j])
            first = max(temp)
            flag = first == nums[0]
            res = [first]
            for i in range(1,length-k+1): 
                if not flag :
                    first = max(first,nums[i+k-1])
                else:
                    temp = []
                    for j in range(0,k):
                        temp.append(nums[i+j])
                    first = max(temp)
                res.append(first)
                flag = first == nums[i]
            return res

    参考

    class Solution(object):
        def maxSlidingWindow(self, nums, k):
            """
            :type nums: List[int]
            :type k: int
            :rtype: List[int]
            """
            if not nums: return []
            
            # max for the first window
            cur_max = max(nums[:k])
            res = [cur_max]
            left = 0
            
            for right in range(k, len(nums)):
                # recalculate the new max and index as the previous max is not in this window
                if nums[right] > cur_max or nums[right-k] == cur_max :
                    cur_max = max(nums[right-k+1: right+1])
                   
                res.append(cur_max)
            
            return res
  • 相关阅读:
    残缺的字符串
    [BZOJ3513: [MUTC2013]idiots]
    FFT感性瞎扯
    Quartz框架简介
    异常状态码总结
    【SSM】拦截器的原理、实现
    FastDFS实现文件上传下载实战
    分布式文件系统FastDFS设计原理(转)
    FastDFS简介
    【设计模式】观察者模式
  • 原文地址:https://www.cnblogs.com/rosyYY/p/11044561.html
Copyright © 2020-2023  润新知