题目描述:
代码如下:
class Solution {
public int maxSubArray(int[] nums) {
if(nums==null||nums.length==0){
return 0;
}
int length=nums.length;
int dp[]=new int[length];//dp[i]相当于以nums[i]为结尾的字数组的最大和
dp[0]=nums[0];
for( int i=1;i<length;i++){
dp[i]=Math.max(nums[i],dp[i-1]+nums[i]);//要么和前面的数组连在一起,要么自成一派
}
int res=Integer.MIN_VALUE;
for(int j=0;j<length;j++){
res=Math.max(res,dp[j]);
}
return res;
}
}