今日总结:3.11课堂小测(一维数组的最大子数组的和(整数))

 

 

 

 

 

 

package test;
import java.util.*;
public class Test {

 

public static void main(String[] args) {
Scanner sc=new Scanner(System.in);

int i,j,k=0,z=0,flag=0,max=0;
int sum=sc.nextInt();
int[] array=new int[sum];
for(i=0;i<sum;i++)
{
array[i]=sc.nextInt();
}
max=array[0];
for(i=0;i<sum;i++)
{

for(j=i;j<sum;j++)
{
k+=array[j];
if(k>max)
{
flag=1;
max=k;
}
}
k=0;
}
System.out.println(max);
}

}

 本次时间复杂度为 n^2

思路:先大循环进行从首到尾的占位,及内循环的起始位置。在内循环中,从首位到末尾之前的每一位进行求和,得出最大的值交给max。再进行大循环的占位(改变内循环的起始位置)。这样可以得出所有的求和的值,最终得出子数组最大的值。

posted @ 2022-03-11 22:58  stdrush  阅读(23)  评论(0)    收藏  举报