可以用动态规划来做,到第  i 个点的最大子序和设置为 dp[i], 那么不难得出:
dp[0] = nums[0] dp[i] = max(dp[i-1]+nums[i],nums[i]) ( i >= 1)**
得到第   i  个点的最大子序和后,与当前存储的最大子序和作比较,如果大于,那么就更新存储的最大子序和。
代码:**
class Solution {public int maxSubArray(int[] nums) {int []dp = new int[nums.length];dp[0] = nums[0];int maxAns = dp[0];for(int i = 1;i < nums.length;i++){dp[i] = Math.max(dp[i-1]+nums[i],nums[i]);if(dp[i] > maxAns){maxAns = dp[i];}}return maxAns;}}
