法1:DP
class Solution {
public int maxSubArray(int[] nums) {
if (nums == null || nums.length == 0) {
return 0;
}
int n = nums.length, res = nums[0];
int[] dp = new int[n];
dp[0] = nums[0];
for (int i = 1; i < nums.length; ++i) {
dp[i] = Math.max(nums[i], dp[i - 1] + nums[i]);
res = Math.max(res, dp[i]);
}
return res;
}
}