日野弥生:勉強しよう

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

发表于2025年04月20日

#数组 #滑动窗口

先求滑动窗口的最大值,然后滑动过程中不断减去开头和附加末尾,循环体循环一次求一次最大值。总体时间复杂度是O(n)。

class Solution:
    def findMaxAverage(self, nums: List[int], k: int) -> float:
        head, tail = 0, k
        summary = 0
        # 注意切片法的前闭后开
        for item in range(head, tail):
            summary += nums[item]
        maximum = summary

        while tail < len(nums):
            summary = summary - nums[head] + nums[tail]
            tail += 1
            head += 1
            maximum = max(maximum, summary)
        return maximum / k

フラッシュタブ:LeetCode

题目链接:https://leetcode.cn/problems/maximum-average-subarray-i/

上一篇

LeetCode 1679 - K 和数对的最大数目

下一篇

LeetCode 1456 - 定长子串中元音的最大数目