mirror of
https://github.com/prdlk/leetcode.git
synced 2026-11-02 13:12:44 +00:00
47 lines
1.1 KiB
Plaintext
47 lines
1.1 KiB
Plaintext
---
|
|
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
|
|
```
|