zoukankan      html  css  js  c++  java
  • 643.子数组的最大平均数I

    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))
  • 相关阅读:
    springMvc
    计算机网络
    Mybatis 总结
    Spring 面试总结
    Java IO 流
    自定义类加载器
    缓存一致性协议
    dfs、bfs序
    7.26
    Trick
  • 原文地址:https://www.cnblogs.com/cong12586/p/14372130.html
Copyright © 2011-2022 走看看