其他分享
首页 > 其他分享> > 题目32

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

 

标签:题目,32,最大值,整数,滑动,窗口,100,输入
来源: https://www.cnblogs.com/weiguomiao/p/16496381.html