LintCode41:最大子数组

来源:互联网 发布:淘宝客服礼貌用语 编辑:程序博客网 时间:2024/05/24 15:36
给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。给出数组[−2,2,−3,4,−1,2,1,−5,3],符合要求的子数组为[4,−1,2,1],其最大和为6

代码如下:

public int maxSubArray(int[] nums) {        // write your code        if (nums==null)           return 0;       int len = nums.length;       int[] a = new int[len];       int[] b = new int[len];       for(int i=0 ;i<len;i++){           if(i==0){               a[i]=b[i]=nums[i];           }else{               a[i]=Math.max(a[i-1]+nums[i],nums[i]);               b[i]=Math.max(a[i],b[i-1]);           }       }       return b[len-1];    }

这一题和LintCode41求最小子数组是一样的解题思路。

0 0
原创粉丝点击