课堂作业02
设计思路:(1)定义两个变量分别是数组和sum,和最大字数组和maxsum;
(2)把数组第一个元素值赋给sum和maxsum;
(3)如果sum<0;就把sum=0(一个数加上一个负数小于它本身)
(4)如果sum>maxsum;maxsum=sum;
源代码:
import java.util.Scanner;
public class MaxOfSubArray {
public static int max(int arr[])
{
int sum=arr[0];
int maxsum=arr[0];
for(int i=1;i<arr.length;i++)
{
if(sum<0)
{
sum=0;
}
sum+=arr[i];
if(sum>maxsum)
{
maxsum=sum;
}
}
return maxsum;
}
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
System.out.println("请输入数组长度:");
int n=sc.nextInt();
int arr[]=new int[n];
System.out.println("请输入数组元素:");
for(int i=0;i<n;i++)
{
arr[i]=sc.nextInt();
}
System.out.println("子数组的最大和:"+max(arr));
}
}

浙公网安备 33010602011771号