您的位置:首页 > 编程语言 > Java开发

联机算法——最大子数组问题

2017-07-13 00:04 239 查看

代码

public class Max {
private static int max ( int [] a ) {
int sum = 0, thisSum = 0;

for ( int i = 0; i < a.length-1; i++ ) {
thisSum += a[i];

if ( thisSum > sum )
sum = thisSum;
else if ( thisSum < 0 )
thisSum = 0;
}

return sum;
}

//测试
public static void main( String [] args) {
int [] a = { 4, -3, 5, -2, -1, 2, 6, -2};
System.out.println( max(a) );
}
}


输出

11


简要分析

联机算法正确性不易看出,也难开发。

但仅需常量空间并以线性时间运算。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  联机 算法 java