剑指offer42题(2)

在网上查了另外一种方法,其实也算同一种。有一些动态规划的思想。代码如下:

package com.algorithm04;

public class Algorithm42_2 {
    
    public int maxSumInSubArray(int[] array){
        
        if(array.length<0)
            return 0;
        if(array.length==1)
            return array[0];
        int max,begin,end,len;
        int[] c = new int[100];
        begin = end = 0;
        max = 0;
        len = array.length;
        for(int i = 1 ; i < len ; i++){
            if(c[i-1]>0)
            {
                c[i] = c[i-1] +array[i];
            }
            else
            {
                c[i] = array[i];
                begin = i;
            }
            if(c[i]>max){
                max = c[i];
                end = i;
            }
        }
        return max;
    }
    
    
    public static void main(String[] args) {
        
        Algorithm42_2 algorithm42_2 = new Algorithm42_2();
        int[] arrays = new int[]{1,-2,3,10,-4,7,2,-5};
        algorithm42_2.maxSumInSubArray(arrays);
        
    }
    
}

参考http://blog.csdn.net/nciaebupt/article/details/8482077  代码。灰常感谢!

posted @ 2017-08-16 20:44  Cloud_strife  阅读(144)  评论(0编辑  收藏  举报