要点:
1.列表切片
2.max()函数
代码如下:
# coding=utf-8
"""
question:
给定一个列表和滑动窗口的大小,找出所有滑动窗口里数值中的最大值。
例:
列表: [2, 3, 4, 2, 6, 2, 5, 1],滑动窗口大小为 3
一个有六个滑动窗口
[[2, 3, 4], 2, 6, 2, 5, 1] [2, [3, 4, 2], 6, 2, 5, 1] [2, 3, [4, 2, 6], 2, 5, 1]
[2, 3, 4, [2, 6, 2], 5, 1] [2, 3, 4, 2, [6, 2, 5], 1] [2, 3, 4, 2, 6, [2, 5, 1]]
输出为:[4, 4, 6, 6, 6, 5]
"""
def max_float_window(nums, size):
if size < 0 or len(nums) < size:
return []
ret = []
# 遍历 len(nums) - size + 1 个窗口
for i in range(0, len(nums) - size + 1):
ret.append(max(nums[i:i + size]))
return ret
if __name__ == '__main__':
l = [2, 3, 4, 2, 6, 2, 5, 1]
print(max_float_window(l, 3))