【问题描述】给定一个数组,求数组中某一段元素和的最大值。注意这一段元素是连续的。如[31,-41,59,26,-53,58,97,-93,-23,84],的最大和是187=59+26+(-53)+58+97
【输入形式】第一行输入数组长度N(0<N<=20000)后面N行输入数组元素
【输出形式】输出子数组的最大和
【样例输入】
10
31
-41
59
26
-53
58
97
-93
-23
84
【样例输出】
187
import java.util.ArrayList;
import java.util.Scanner;
/**
* @author liangyuanshao
* @date 2021/4/2 - 11:37
*/
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
ArrayList list = new ArrayList();
int max = 0;
int n = s.nextInt();
for (int k = 0; k < n; k++) {
list.add(0, s.nextInt());
for (int i = 0; i < list.size(); i++) {
int temp = 0;
for (int j = 0; j <= i; j++) {
temp += (int) list.get(j);
}
if (temp > max) {
max = temp;
}
}
}
System.out.println(max);
s.close();
}
}