643. Maximum Average Subarray I

Solution:

  • instead of summing up and getting the average every loop, we can replace the ends to calculate the average.
class Solution:
    def findMaxAverage(self, nums: List[int], k: int) -> float:
        ret = float("-inf")
        s = 0

        for i in range(0, k):
            s += nums[i]
        ret = s / k
        for i in range(0, len(nums) - k):
            s -= nums[i]
            s += nums[i + k]
            avg = s / k
            if avg > ret:
                ret = avg
        return ret