获取题库不需要订阅专栏,可直接私信我进入CSDN领军人物top1博主的华为OD交流圈观看完整题库、最新面试实况、考试报告等内容以及大佬一对一答疑。
题目描述
有一个N个整数的数组,和一个长度为M的窗口,窗口从数组内的第一个数开始滑动直到窗口不能滑动为止,
每次窗口滑动产生一个窗口和(窗口内所有数的和),求窗口滑动产生的所有窗口和的最大值。
输入描述
第一行输入一个正整数N,表示整数个数。(0<N<100000)
第二行输入N个整数,整数的取值范围为[-100,100]。
第三行输入一个正整数M,M代表窗口的大小,M<=100000,且M<=N。
输出描述
窗口滑动产生所有窗口和的最大值。
题目解析
本题是一个典型的滑动窗口问题,要求在给定的整数数组上使用一个长度为M的窗口进行滑动,并计算每次滑动后窗口内所有数的和,找出这些和中的最大值。
解题步骤如下:
1.初始化一个长度为N的数组nums,用于存储输入的N个整数。
2.初始化一个长度为M的窗口,用于计算窗口内的和。
3.初始化两个变量maxSum和currentSum,maxSum用于记录最大的窗口和,currentSum用于记录当前窗口的和。
4.从数组的起始位置开始,计算前M个数的和,并更新maxSum和currentSum。
5.滑动窗口,向右移动一个位置,同时减去窗口最左边的数,加上