算法-目录
题目来源: 剑指 Offer 59 - I. 滑动窗口的最大值
class Solution:
def maxSlidingWindow(self, nums: List[int], k: int) -> List[int]:
ans=[]
if len(nums)== 0 or k>len(nums):
return []
for i in range(len(nums)-k+1):
ans.append(max(nums[i:i+k]))
return ans
BM45 滑动窗口的最大值 [K]
class Solution:
def maxInWindows(self , num: List[int], size: int) -> List[int]:
# write code here
# if len(num)== 0 or size>len(num):
# return []
cur_max = max(num[:size])
max_nums = [cur_max]
for i in range(0, len(num)-size):
if num[i] == cur_max:
cur_max = max(num[i+1: i+size+1])
elif num[i+size]>cur_max:
cur_max = num[i+size]
max_nums.append(cur_max)
return max_nums