1.给定一个包含n个整数的数组,找到长度为k的平均值最大的连续子数组,并输出这个最大均值。假设1<=k<=n。
解题思路:该题属于滑动窗口,不断的新增窗口,并打破窗口,判断当前累加值和历史最大值的大小。
def findmax(alist):
n = len(alist)
sum_k = 0
#先求出前k个值的累加和
for i in range(k):
sum_k + =i
res = sum_k
#在接着遍历剩下的元素,判断当前值和历史最大值的大小
for i in range(k,n):
sum_k+=alist[i]-alist[i-k]
if res < sum_k:
res = sum_k
return res/k