课堂测试总结

/*求整数组中最大子数组的和*/
package lianxi;
import java.util.Scanner;
public class sz {
public static void main(String args[]){
int num;
Scanner sc = new Scanner(System.in);
num=sc.nextInt();//输入数组长度
int a[]=new int[num];//定义数组
int i;
for(i=0;i<num;i++)
{
a[i]=sc.nextInt();//给数组赋值
}
int sum=a[0];//设和为0
int max=a[0];//设最大值为0
for(i=1;i<num;i++)
{
if(sum>0)
sum += a[i];//如果和大于0,相加
else
sum = a[i];//否则和不变
if(max<sum)
max=sum;//最大值小于和,则最大值等于和
}
System.out.println(max);//输出最大值
}
}
也可以用递归做,或者用中间变量存储值,但是一定要做的就是和前一个和比较,需要判断。
但是时间复杂度不知道有没有满足老师的要求,下次再改进吧。
posted @ 2022-03-12 21:51  Lindseyyip  阅读(22)  评论(0)    收藏  举报