文章
232
粉丝
165
获赞
380
访问
141.7k
#include <stdio.h>
#include <stdlib.h>
int main() {
int n, k;
scanf("%d %d", &n, &k);
int nums[100005] = {0};
for (int i = 0; i < n; ++i) {
scanf("%d", &nums[i]);
}
// 计算第一个长度为 k 的子数组的和
int sum = 0;
for (int i = 0; i < k; ++i) {
sum += nums[i];
}
int maxSum = sum;
// 滑动窗口
for (int i = k; i < n; ++i) {
sum += nums[i] - nums[i - k];
if (sum > maxSum) {
maxSum = sum;
}
}
double maxAvg = (double)maxSum / k;
printf("%.5f\n", maxAvg);
return 0;
}
登录后发布评论
暂无评论,来抢沙发