题目:
定义一个整型数组,返回该数组中子数组和的最大值!
思路:
1.首先进行数组的遍历,对最大值进行初始化为数组的第一个元素,每次遍历,求得该子数组的和。
2.将上值与最大值作max(a,b)操作,然后进行下一次的遍历,直到结束。
方法:
用到三个for循环。
第一个 用来完成所有数组的循环。
第二个用来表示从第几个元素开始,寻找子数组。
第三个 用来获取每个子数组的和,等到遍历完全结束,返回最大值输出。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 import java.util.Scanner; 2 3 public class shuzu { 4 public static void main(String[] args){ 5 int number,maxsum;//定义2个整型 6 7 int a; 8 Scanner in = new Scanner(System.in);//输入 9 System.out.println("请输入数组大小"); 10 number=in.nextInt();//将输入值存于number1· 11 int array[]=new int[number];//由上述操作定义数组 12 System.out.println("请输入数组的值:"); 13 for(a=0;a<number;a++) { 14 array[a]=in.nextInt(); 15 } //数组定义完成 16 //查询最大数组 17 18 int i,j,k; 19 int max[]=new int [number]; 20 for(i=0;i<number;i++){ 21 max[i]=array[i]; 22 k=array[i]; 23 for(j=i+1;j<number;j++){ 24 k=k+array[j]; 25 if(k>max[i]) 26 {max[i]=k;} 27 } 28 } 29 int m=max[0]; 30 for(i=1;i<number;i++) 31 { 32 if(max[i]>m) 33 {m=max[i];} 34 } 35 System.out.println("所有连续子数组和的最大值为:"+m); 36 37 } 38 }