643. 子数组最大平均数 I 简单
给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。
示例:
输入:[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]。
代码参考:
package main
import "fmt"
func main() {
fmt.Println(findMaxAverage([]int{0, 1, 1, 3, 3}, 4))
}
// 固定长度的子序列求和,像尺子上的蚯蚓一样向前挪...
func findMaxAverage(nums []int, k int) float64 {
sum := 0
for i := 0; i < k; i++ {
sum += nums[i]
}
maxSum := sum
for i := k; i < len(nums); i++ {
// 挪动...
sum += nums[i]
sum -= nums[i-k]
if sum > maxSum {
maxSum = sum
}
}
return float64(maxSum) / float64(k)
}
最后编辑: kuteng 文档更新时间: 2021-06-05 10:16 作者:kuteng