数组求和
Posted shiaguang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组求和相关的知识,希望对你有一定的参考价值。
问题描述
输入n个数,围成一圈,求连续m(m<n)个数的和最大为多少?
输入格式
输入的第一行包含两个整数n, m。第二行,共n个整数。
输出格式
输出1行,包含一个整数,连续m个数之和的最大值。
样例输入
10 3
9 10 1 5 9 3 2 6 7 4
9 10 1 5 9 3 2 6 7 4
样例输出
23
mport java.util.ArrayList; 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 [] num = new int [n+m]; for (int i=0;i<n;i++){ num[i]=sc.nextInt(); } sc.close(); for (int i=n;i<n+m;i++){ num[i]=num[i-n]; } int max = 0,sum=0; //把前m个累加 for (int i=0;i<m;i++) sum+=num[i]; //后m--n+m个 for (int i=m;i<m+n;i++) { //减去上每个数的前一个 加上后一个 sum=sum-num[i-m]+num[i]; max=Math.max(max,sum); } System.out.println(max); } }
以上是关于数组求和的主要内容,如果未能解决你的问题,请参考以下文章