一思路
- 一开始我想用个移动的列表记录,没想到效率太低
二代码
class Solution:
def maxSlidingWindow(self, nums: List[int], k: int) -> List[int]:
res=[]
s=[]
for i in nums:
res.append(i)
if len(res)<k:
continue
s.append(max(res))
res.pop(0)
return s
#第二种方法比较高效
class Solution:
def maxSlidingWindow(self, nums: List[int], k: int) -> List[int]:
res=[]
t=max(nums[0:k])
res.append(t)
for i in range(k,len(nums)):
if nums[i-k] == t:
t=max(nums[i-k+1:i+1])
else:
if nums[i]>t:
t=nums[i]
res.append(t)
return res