【问题描述】
给定一个数组,求数组中某一段元素和的最大值。注意这一段元素是连续的。如[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(); } }