【Leetcode_まとめ】643.サブ配列最大平均数I-python
Q:
例1:
リンク:https://leetcode-cn.com/problems/maximum-average-subarray-i/description/
考え方:直接暴力を振るうとタイムアウトになるので和を求める処理は毎回和を求める操作から頭位をマイナスして末位をプラスする
コード:
n
個の整数が与えられ、平均数が最大で長さがk
の連続サブ配列が見出され、その最大平均数が出力される.例1:
: [1,12,-5,-6,50,3], k = 4
: 12.75
: (12-5-6+50)/4 = 51/4 = 12.75
リンク:https://leetcode-cn.com/problems/maximum-average-subarray-i/description/
考え方:直接暴力を振るうとタイムアウトになるので和を求める処理は毎回和を求める操作から頭位をマイナスして末位をプラスする
コード:
class Solution:
def findMaxAverage(self, nums, k):
"""
:type nums: List[int]
:type k: int
:rtype: float
"""
res = sum(nums[0:k])
max_ = res
for i in range(len(nums)-k):
if len(nums[i:i+k]) != k:
break
res = res - nums[i] + nums[i + k]
if res > max_:
max_ = res
return max_/k