one line of code at a time

[leetcode] 643. Maximum Average Subarray I 파이썬 코드 본문

leetcode

[leetcode] 643. Maximum Average Subarray I 파이썬 코드

oloc 2024. 8. 13. 05:19

sliding window 문제.

 

https://leetcode.com/problems/maximum-average-subarray-i/

 

정수 배열 nums가 있다. 여기서 길이가 k인 subarray들 중에서 가장 큰 평균값을 구하는 문제다.

k는 sliding window의 길이라고 생각하면 된다.

 

class Solution(object):
    def findMaxAverage(self, nums, k):
        maxAvg = float('-inf')
        currSum = 0
        for i in range(k):
            currSum += nums[i]

        maxAvg = currSum / float(k)
        # print(maxAvg)

        for i in range(1, len(nums) - k + 1):
            lp, rp = i-1, i + (k-1)
            currSum = currSum - nums[lp] + nums[rp]
            maxAvg = max(maxAvg, currSum / float(k))

        return maxAvg