题目要求
给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。
解题思路
滑动窗口
class Solution(object):
def maxSlidingWindow(self, nums, k):
"""
:type nums: List[int]
:type k: int
:rtype: List[int]
"""
if not nums:
return []
l, r = 0, k - 1
res = []
while r <= len(nums)-1:
# 若结果为空
if not res:
res.append(max(nums[l: r+1]))
# 若上一次最大值与nums[l-1]相等
elif res[-1] == nums[l-1]:
res.append(max(nums[l: r+1]))
# 若上一次最大值与nums[l-1]不相等
else:
res.append(max(res[-1], nums[r]))
l += 1
r += 1
return res