网页制作基础教程visual studio code,北京seo公司网站,设计方案格式模板,网站分析 实例题目 一贫如洗的樵夫阿里巴巴在去砍柴的路上#xff0c;无意中发现了强盗集团的藏宝地#xff0c;藏宝地有编号从0-N的箱子#xff0c;每个箱子上面贴有一个数字.阿里巴巴念出一个咒语数字k(kN),找出连续k个宝箱数字和的最大值#xff0c;并输出该最大值。 输入描述 第…题目 一贫如洗的樵夫阿里巴巴在去砍柴的路上无意中发现了强盗集团的藏宝地藏宝地有编号从0-N的箱子每个箱子上面贴有一个数字.阿里巴巴念出一个咒语数字k(kN),找出连续k个宝箱数字和的最大值并输出该最大值。 输入描述 第一行输入一个数字字串数字之间使用逗号分隔例如: 2,10,-3,-8,40,5。 1字串中数字的个数100000 -10000每个数字10000 第二行输入咒语数字例如: 4,咒语数字大小小于宝箱的个数 输出描述 连续k个宝箱数字和的最大值例如: 39 示例1: 输入 2,10,-3,-8,40,5 4 输出 39 示例2: 输入 8 1 输出 8 思路 求连续k个字符的最大和使用滑动窗口遍历即可。 题目没有要求窗口内的数字不能重复所以不用额外判断 题解
package hwod;import java.util.Arrays;
import java.util.Scanner;public class FindGoldBox5 {public static void main(String[] args) {Scanner sc new Scanner(System.in);int[] nums Arrays.stream(sc.nextLine().split(,)).mapToInt(Integer::parseInt).toArray();int n sc.nextInt();System.out.println(findGlodBox5(nums, n));}private static int findGlodBox5(int[] nums, int n) {int ans -1, sum 0;if (n nums.length) return -1;for (int i 0; i n; i) {sum nums[i];}ans sum;for (int j n; j nums.length; j) {sum sum nums[j] - nums[j - n];ans Math.max(ans, sum);}return ans;}
}
推荐
如果你对本系列的其他题目感兴趣可以参考华为OD机试真题及题解JAVA查看当前专栏更新的所有题目。