问题说明 :
计算一个整形数组里的连续元素和的最大值
例:{9, -12, 120, 8, -20, 100, 30, -89, 20}
结果是{120, 8 , -20, 100, 30}的和最大,为 238
解决方法:
class Find_Max_Sum {
public static void main(String[] args)
{
int a[] = {9, -12, 120, 8, -20, 100, 30, -89, 20};
int total;
int maxmum;
int len;
int startindex;
total = maxmum = len = 0;
startindex = 0;
for (int i = 0 ; i < a.length; i++)
{
total += a[i];
if (total < 0)
{
len = 0;
startindex = i+1;
total = 0;
}
if (total > maxmum)
{
maxmum = total;
len = i - startindex + 1;
}
}
System.out.println("start index:" + startindex + "\t" + "length:" + len + "\t" + "maxmum:" + maxmum);
}
}