数组求和

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
样例输出
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);

        }


}

 

以上是关于数组求和的主要内容,如果未能解决你的问题,请参考以下文章

python数组求和

数组求和

js数组相加

数组求和

以下代码片段的算法复杂度

VSCode自定义代码片段—— 数组的响应式方法