•
문제 설명 : 정수 배열 nums와 정수 k가 주어지며, 길이가 k인 연속적인 부분 배열 중 최대 평균 값을 가지는 부분 배열을 찾아 이 값을 반환
•
풀이 방법
◦
범위를 지정하며, 값을 구하면 된다.
▪
다만, 합산을 구하기 위해 매번 O(k) 만큼 순회하지 않고 맨 앞 값을 빼고 맨 뒤 값을 더하는 방식으로 총합을 변경한다.
•
시간복잡도 :
•
성공 코드
class Solution:
def findMaxAverage(self, nums: List[int], k: int) -> float:
target_range_sum = sum(nums[:k])
max_result = target_range_sum / k
for i in range(1, len(nums) - k + 1):
target_range_sum -= nums[i - 1]
target_range_sum += nums[i + k - 1]
max_result = max(max_result, target_range_sum / k)
return max_result
Python
복사