首页 > 编程语言 > 详细

643.子数组的最大平均数I

时间:2021-02-04 15:31:09      阅读:17      评论:0      收藏:0      [点我收藏+]
from typing import List
# 这道题使用滑动窗口的方法来做的,定义一个长度为k的滑动窗口
# 向右滑动,计算每次滑动窗口中数字的和,最后算出最大值。
class Solution:
def findMaxAverage(self, nums: List[int], k: int) -> float:
# 求出数组的长度。
length = len(nums)
# 判断数组的长度是否小于k
if length < k:
return 0
# 定义每次滑动窗口中数字的和。
sum_num = 0
# 定义每次滑动窗口的最大值。
res = float(‘-inf‘)
# 进行遍历。滑动窗口为i-k + 1 - i
for i in range(length):
# 每次加上 index 为 i 的数字。
sum_num += nums[i]
# 如果i大于k那么此时滑动窗口中的数是 k + 1个,
if i >= k:
# 因此需要减去最左边那个。
sum_num -= nums[i - k]
# 每次计算,比较 数组和的最大值。
if i >= k -1:
res = max(sum_num,res)
# 最后返回平均值。
return res / k
A = Solution()
print(A.findMaxAverage([1,12,-5,-6,50,3],4))

643.子数组的最大平均数I

原文:https://www.cnblogs.com/cong12586/p/14372130.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!