题目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;
}

 

原创文章,作者:kepupublish,如若转载,请注明出处:https://blog.ytso.com/275529.html

(0)
上一篇 2022年7月20日
下一篇 2022年7月20日

相关推荐

发表回复

登录后才能评论