简单数组滑动窗口
PROBLEM / 研究生阶段
643. 子数组最大平均数 I
给你一个由 n 个元素组成的整数数组 nums 和一个整数 k 。
请你找出平均数最大且 长度为 k 的连续子数组,并输出该最大平均数。
任何误差小于 10-5 的答案都将被视为正确答案。
示例 1:
输入: nums = 1,12,-5,-6,50,3, k = 4 输出: 12.75 解释: 最大平均数 (12-5-6+50)/4 = 51/4 = 12.75
示例 2:
输入: nums = 5, k = 1 输出: 5.00000
提示:
n == nums.length1 <= k <= n <= 105-104 <= nums[i] <= 104
参考解法
下面保留的是原始练习仓库中的个人作答,可在右侧工作台中独立重写,再按需揭示对照。
python
class Solution(object):
def findMaxAverage(self, nums, k):
current_sum = sum(nums[:k])
max_sum = current_sum
for i in range(k, len(nums)):
current_sum = current_sum - nums[i - k] + nums[i]
max_sum = current_sum if current_sum > max_sum else max_sum
return float(max_sum) / k
"""
:type nums: List[int]
:type k: int
:rtype: float
"""
YOUR SOLUTION643. 子数组最大平均数 I