643 子数组的最大平均数-简单
题目:
给你一个由 n
个元素组成的整数数组 nums
和一个整数 k
。
请你找出平均数最大且 长度为 k
的连续子数组,并输出该最大平均数。
任何误差小于 10-5
的答案都将被视为正确答案。
分析:
滑动窗口,直接计算。
注意元素只有一个,且 k 等于1的时候,平均数有可能小于零。
// date 2023/11/21
func findMaxAverage(nums []int, k int) float64 {
var ans float64
ansSet := false
left, right := 0, 0
n := len(nums)
ksum := 0
for right < n {
ksum += nums[right]
right++
if right - left >= k {
res := float64(ksum) / float64(k)
if !ansSet {
ans = res
ansSet = true
} else if res > ans {
ans = res
}
ksum -= nums[left]
left++
}
}
return ans
}
最后更新于