package com.duoduo.test1;
public class Test4_2_2{
public static void main(String[] args){
//int[] array = {-9,1,3,5,-1,7,-5,3,1};
int [] array= {1,-2,4,8,-4,7,-1,-5};
int len=array.length;
int[] c=new int[len];//引入一个数组
int max = -1000;//用来记录数组c[]中的最大值
int start = 0;//记录数组中子数组的最大和的开始位置
int end = 0;//记录数组中子数组的最大和的结束位置
int tmp = 0;//中间变量
c[0] = array[0];
for (int i = 1; i < len; ++i)
{
if (c[i - 1] > 0)
{
c[i] = c[i - 1] + array[i];
}
else
{
c[i] = array[i];
tmp = i;
}
if (c[i] > max)
{
max = c[i];
start = tmp;
end = i;
}
}
System.out.println(start+"~
动态规划---求最大子数组之和
最新推荐文章于 2025-04-08 17:20:29 发布