要求:从控制台输入一个数组,输出该数组中最大的子数组的和
package cyan.cn.多线程;
import java.util.Scanner;
public class MythreadDemoDemo {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
//输入一个数字数组,以空格隔开
String str=sc.nextLine();
//将该数字字符串分离成字符串数组
String[] s=str.split(" ");
//创建输入个数长度的数组
int[] arr=new int[s.length];
//将字符串数组转为数字数组
for(int i=0;i<s.length;i++){
//将String解析成int类型
arr[i]=Integer.parseInt(s[i]);
//System.out.println(Integer.parseInt(s[i]));
}
System.out.println(MaxSum(arr));
}
public static int MaxSum(int[] arr){
int sum=0;
int max=arr[0];
for(int j=0;j<arr.length;j++){
for(int i=j;i<arr.length;i++){
sum+=arr[i];
if(sum>=max){
max=sum;
}
}
//从下一位置开始重新找
sum=0;
}
return max;
}
}