--- title: '643. Maximum Average Subarray I' description: You are given an integer array nums consisting of n elements, and an integer k icon: dot topics: - { name: "Array", slug: "array" } - { name: "Sliding Window", slug: "sliding-window" } issue: "https://github.com/prdlk/leetcode/issues/55" sidebar: label: 'Maximum Average Subarray I' badge: 'Easy' --- ### Example 1: - Input: `nums = [1,12,-5,-6,50,3], k = 4` - Output: `12.75000` - Explanation: Maximum average is `(12 - 5 - 6 + 50`) / `4 = 51 / 4 = 12.75` ### Example 2: - Input: `nums = [5], k = 1` - Output: `5.00000` ### Constraints: - `n == nums.length` - `1 <= k <= n <= 10^5` - `-10^4 <= nums[i] <= 10^4` ## Solution ```py class Solution: def findMaxAverage(self, nums: list[int], k: int) -> float: window_sum = 0 for i in range(k): window_sum += nums[i] largest = window_sum for right in range(k, len(nums)): left = right - k window_sum -= nums[left] window_sum += nums[right] largest = max(largest, window_sum) return largest / k ```