# Solving Leetcode Interviews in Seconds with AI: Maximum Average Subarray I


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "643" using AI. LeetCode is a popular platform for preparing for coding interviews, and with the help of AI tools like [Chatmagic](https://www.chatmagic.app), we can generate solutions quickly and efficiently - helping you pass the interviews and get the job offer without having to study for months.

	# Problem Statement
	> You are given an integer array nums consisting of n elements, and an integer k. Find a contiguous subarray whose length is equal to k that has the maximum average value and return this value. Any answer with a calculation error less than 10-5 will be accepted.   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 <= 105 -104 <= nums[i] <= 104  

	# Explanation
	*   **Sliding Window:** Use a sliding window of size `k` to efficiently calculate the sum of each contiguous subarray of length `k`.
*   **Keep Track of Max Sum:** Maintain a variable to store the maximum sum encountered so far.
*   **Calculate Average:** After finding the maximum sum, divide it by `k` to obtain the maximum average.

*   **Runtime Complexity: O(n), Storage Complexity: O(1)**

	
	# Code
	```python
	def findMaxAverage(nums: list[int], k: int) -> float:
    """
    You are given an integer array nums consisting of n elements, and an integer k.
    Find a contiguous subarray whose length is equal to k that has the maximum average value and return this value.
    Any answer with a calculation error less than 10-5 will be accepted.

    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 <= 105
    -104 <= nums[i] <= 104
    """

    window_sum = sum(nums[:k])
    max_sum = window_sum

    for i in range(k, len(nums)):
        window_sum += nums[i] - nums[i - k]
        max_sum = max(max_sum, window_sum)

    return max_sum / k
	```
			
