文章

232

粉丝

165

获赞

380

访问

141.7k

头像
长度一定的连续子序列的最大平均值 题解:
P816
发布于2026年4月6日 13:52
阅读数 261

#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;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发