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