文章
27
粉丝
492
获赞
15
访问
277.2k
import java.util.Scanner;
/**
* 1.本人比较菜,动态规划还没了解,这题用的算是枚举吧。
*
* @author 回到原点
*
*/
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int n = sc.nextInt();
int[] a = new int[n + 1];
for (int i = 1; i <= n; i++) {
a[i] = sc.nextInt();
}
int max = -100000;
int begin = 0;
int last = 0;
int sum = 0;
for (int i = 1; i <= n; i++) {
sum = a[i];
if (sum > max) {// 先判断单个子串是否最大
max = sum;
}
for (int j = i + 1; j <= n; j++) { // 两个数组成的子串,三个.....到n个组成的子串
sum += a[j];
if (sum > max) {// 不断比较,找到最大的子串和
max = sum;
}
}
}
int flag = 0;
for (int i = 1; i <= n; i++) {// 通过遍历,再找出最大值是由什么样的子串组成的,返回子串的首字符和尾字符
if (flag == 0) {
sum = a[i];
if (sum == max) { // 先判断单个字符的是否是最大值
System.out.println(max);
System.out...
登录后发布评论