给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。
示例 1:
输入: [1,12,-5,-6,50,3], k = 4
输出: 12.75
解释: 最大平均数 (12-5-6+50)/4 = 51/4 = 12.75
注意:
1 <= k <= n <= 30,000。
所给数据范围 [-10,000,10,000]。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-average-subarray-i
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路
滑动窗口
class Solution:
def findMaxAverage(self, nums: List[int], k: int) -> float:
tmp=sum(nums[:k])
res=tmp
for i in range(k,len(nums)):
tmp=tmp-nums[i-k]+nums[i]
res=max(tmp,res)
return res/k
执行结果:
通过
显示详情
执行用时:1048 ms, 在所有 Python3 提交中击败了81.22%的用户
内存消耗:17.3 MB, 在所有 Python3 提交中击败了10.00%的用户