LeetCode-643-子数组最大平均数 I

给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。


image.png

解题思路:

  1. 双指针,滑动窗口;
  2. 初始化ans=前k个数字的和,j从k开始遍历,滑动窗口,每次加头部一个数字,减去尾部一个数字,再与max_比较;
  3. 遍历完,max_除以k得最大平均值。

Python3代码:

class Solution:
    def findMaxAverage(self, nums: List[int], k: int) -> float:
        i, j = 0, k
        n = len(nums)
        max_ = ans = sum(nums[:k])
        while j < n:
            ans += nums[j]
            ans -= nums[j-k]
            max_ = max(max_, ans)
            j+=1
        return max_/k
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容