24.长度为M的窗口内数值和的最大值问题

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

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

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

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

输出
68

 

查看代码

import java.util.*;

public class Demo24 {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = Integer.parseInt(sc.nextLine());
        String[] split = sc.nextLine().split(" ");
        int m = Integer.parseInt(sc.nextLine());

        int[] ints = new int[n];
        for(int i = 0; i < n; i++){
            ints[i] = Integer.parseInt(split[i]);
        }

        int max = 0;
        for(int i = 0; i <= n - m; i++){
            int sum = 0;
            for(int j = i; j < i + m; j++)  sum += ints[j];
            if(max < sum)
                max = sum;
        }

        System.out.println(max);
    }
}

 

总结:数组下标还是不够熟练理解运用!

 

posted @ 2022-03-26 15:17  Jukim  阅读(309)  评论(0编辑  收藏  举报