// 定义dp:以i结尾的最大子数组和 dp[i] = max(dp[i-1] + nums[i],nums[i])
class Solution {public int maxSubArray(int[] nums) {// 1. 不需要特殊处理// 2. 定义dpint[] dp = new int[nums.length];dp[0] = nums[0];int maxResult = nums[0];// 3. dp递推for (int i = 1; i < nums.length; i++) {dp[i] = Math.max(dp[i - 1] + nums[i], nums[i]);// 4. 记录递推过程中的最大值maxResult = Math.max(maxResult, dp[i]);}return maxResult;}
}