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

来源:互联网 发布:大数据高并发 面试题 编辑:程序博客网 时间:2024/06/01 09:56

代码

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

简要分析

联机算法正确性不易看出,也难开发。
但仅需常量空间并以线性时间运算。

原创粉丝点击