杭州品牌网站,微信小程序引流推广软件,短视频制作神器,市场营销推广策划方案题目 题目描述: 有一个N个整数的数组#xff0c;和一个长度为M的窗口#xff0c;窗口从数组内的第一个数开始滑动直到窗口不能滑动为止#xff0c;每次窗口滑动产生一个窗口和#xff08;窗口内所有数的和)#xff0c;求窗口滑动产生的所有窗口和的最大值。 输入描述: 第一…题目 题目描述: 有一个N个整数的数组和一个长度为M的窗口窗口从数组内的第一个数开始滑动直到窗口不能滑动为止每次窗口滑动产生一个窗口和窗口内所有数的和)求窗口滑动产生的所有窗口和的最大值。 输入描述: 第一行输入一个正整数N表示整数个数。(ON100000)第二行输入N个整数整数的取值范围为[-100,100]。 第三行输入一个正整数MM代表窗口的大小M100000且MN。 输出描述: 窗口滑动产生所有窗口和的最大值口。 示例1 输入输出示例仅供调试后台判题数据一般不包含示例 输入 6 12 10 20 30 15 23 3 输出 68 思路 简单题遍历窗口右边界根据窗口长度计算左边界当左边界大于0时窗口累加和计算时就要开始减去左边的值res-nums[i-1] 遍历完成后即可得到滑动窗口的最大值 题解
package hwod;import java.util.Scanner;public class SlidingWin {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();int[] nums new int[n];for (int i 0; i n; i) {nums[i] sc.nextInt();}int size sc.nextInt();System.out.println(slidingWin(nums,size));}private static int slidingWin(int[] nums, int size) {int res 0, max 0;for (int j 0; j nums.length; j) {int i j - size 1;res nums[j];if(i0) {res - nums[i-1];}max Math.max(max, res);}return max;}
}
推荐
如果你对本系列的其他题目感兴趣可以参考华为OD机试真题及题解JAVA查看当前专栏更新的所有题目。
说明
本专栏所有文章均为原创欢迎转载请注明文章出处https://blog.csdn.net/qq_31076523/article/details/134176793。百度和各类采集站皆不可信搜索请谨慎鉴别。技术类文章一般都有时效性本人习惯不定期对自己的博文进行修正和更新因此请访问出处以查看本文的最新版本。