Q:
给定 n
个整数,找出平均数最大且长度为 k
的连续子数组,并输出该最大平均数。
示例 1:
输入: [1,12,-5,-6,50,3], k = 4 输出: 12.75 解释: 最大平均数 (12-5-6+50)/4 = 51/4 = 12.75
链接:https://leetcode-cn.com/problems/maximum-average-subarray-i/description/
思路:直接暴力的话 会超时 因此对于求和进行处理 将每次求和的操作转换成减去头位 加上末位后一位
代码:
class Solution:
def findMaxAverage(self, nums, k):
"""
:type nums: List[int]
:type k: int
:rtype: float
"""
res = sum(nums[0:k])
max_ = res
for i in range(len(nums)-k):
if len(nums[i:i+k]) != k:
break
res = res - nums[i] + nums[i + k]
if res > max_:
max_ = res
return max_/k