蓝桥杯 算法提高 数组求和 Java

算法提高 数组求和

资源限制

时间限制:1.0s 内存限制:256.0MB

问题描述

输入n个数,围成一圈,求连续m(m<n)个数的和最大为多少?

输入格式

输入的第一行包含两个整数n, m。第二行,共n个整数。

输出格式

输出1行,包含一个整数,连续m个数之和的最大值。

样例输入

10 3
9 10 1 5 9 3 2 6 7 4

样例输出

23

数据规模和约定

0<m<n<1000, -32768<=输入的每个数<=32767。

参考代码

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int m = sc.nextInt();
		int[] a = new int[n];
		for (int i = 0; i < n; i++) {
			a[i] = sc.nextInt();
		}
		int max = -100000;
		for (int i = 0; i < n; i++) {
			int x = 0;
			for (int j = 0; j < m; j++) {
				int k = i + j;
				if (k >= n) {
					k = k - n;
				}
				x = x + a[k];
			}
			if (x > max)
				max = x;
		}
		System.out.println(max);
	}
}
发布了5 篇原创文章 · 获赞 0 · 访问量 148

猜你喜欢

转载自blog.csdn.net/qq_44972405/article/details/104524219