[Python] 리트코드 634. Maximum Average Subarray I (슬라이딩 윈도우)


[Python] 리트코드 634. Maximum Average Subarray I  (슬라이딩 윈도우)

리스트에서 연속된 k개의 평균이 가장 큰 경우를 구하는 문제 풀이 1 시간 초과 부분 리스트의 합을 반복해서 구해야 하기 때문에 효율적이지 않은 풀이 class Solution: def findMaxAverage(self, nums: List[int], k: int) -> float: max_ = sum(nums[:k]) / k for i in range(len(nums)-k+1): if (sum(nums[i:i+k]) / k) > max_: max_ = sum(nums[i:i+k]) / k return max_ 풀이 2 부분 합 초기값 (total_sum) / 초기 max값(max_sum) 을 정의하고 시작 (값 두개 정의 주의!!) 부분합 초기값을 조정해주면서, max값을 업데이트 하는 것! (코드 쓰면서 만져야할 부분은 total_sum 임!) 반복문을 돌면서 total_sum - 맨 앞 값 + 맨 뒤 값 max 값 업데이트 반복문 탈출 후, max 값 return class ...



원문링크 : [Python] 리트코드 634. Maximum Average Subarray I (슬라이딩 윈도우)