• 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
  • 相关阅读:
    新·刷题记录【争取认真来做】
    Codeforces 235D Graph Game
    Codeforces 235B Let's Play Osu!
    Codeforces 235E Number Challenge
    Codeforces 235C Cyclical Quest
    AHOI2017游记
    bzoj4826: [Hnoi2017]影魔
    大数分解模板
    A new start
    0712
  • 原文地址:https://www.cnblogs.com/rosyYY/p/11044561.html
Copyright © 2020-2023  润新知