题目32

有一个N个整数的数组
和一个长度为M的窗口
窗口从数组内的第一个数开始滑动
直到窗口不能滑动为止
每次滑动产生一个窗口 和窗口内所有数的和
求窗口滑动产生的所有窗口和的最大值

输入描述
第一行输入一个正整数N
表示整数个数 0<N<100000
第二行输入N个整数
整数取值范围 [-100,100]
第三行输入正整数M
M代表窗口的大小
M<=100000 并<=N

输出描述
窗口滑动产生所有窗口和的最大值

示例一
输入
6
12 10 20 30 15 23
3

输出
68

<?php
$n=fgets(STDIN);
$arr=explode(' ',trim(fgets(STDIN)));
$m=fgets(STDIN);
solution($n,$arr,$m);

function solution($n,$arr,$m)
{
    
    $max=PHP_INT_MIN;
    for($i=0;$i<$n-$m+1;$i++){
        $sum=0;
        for ($j=$i;$j<$i+$m;$j++){
            $sum+=$arr[$j];
        }
        $max=max($sum,$max);
    }
    echo $max;
}

 

posted @ 2022-07-20 01:04  weigm*  阅读(40)  评论(0)    收藏  举报