题目描述
自己解法
暴力求解的话空间复杂度为 O ( n 2 ) O(n^2) O(n2),故采用滑动窗口法,只遍历一次数组,依次减去开头和加上末尾元素进行比较。
class Solution:
def findMaxAverage(self, nums: List[int], k: int) -> float:
sum_val = sum(nums[:k])
res = sum_val
for i in range(k,len(nums)):
sum_val = sum_val - nums[i-k] + nums[i]
res = max(res,sum_val)
return res / k
时间复杂度:
O
(
n
)
O(n)
O(n)
空间复杂度:
O
(
1
)
O(1)
O(1)
官方解答
与自己解答类似,参考:官方解答