

解析:方法一:迭代 方法二:DP
class Solution {public int maxSubArray(int[] nums) {/* //方法一:迭代int maxRes = nums[0], currTotal = nums[0];for (int i = 1; i < nums.length; i++) {if (currTotal < 0) {currTotal = 0;}currTotal += nums[i];maxRes = Math.max(maxRes, currTotal);}return maxRes;*///方法二:DPint[] dp = new int[nums.length];dp[0] = nums[0];for (int i = 1; i < nums.length; i++) {dp[i] = Math.max(nums[i]+dp[i-1], nums[i]);}//return Arrays.stream(dp).max().getAsInt();return searchMaxArrayValue(dp);}int searchMaxArrayValue(int[] array){int maxValue=array[0];for (int i = 1; i < array.length; i++) {if(array[i]>maxValue){maxValue=array[i];}}return maxValue;}}
