动态规划问题,明显的一维表 这边直接改传进来的数组即可,需要记录比较最大值
整体推到过程 i 位置的最大子数组和 值与 i-1 位置
import java.util.*; public class Solution { /** * max sum of the subarray * @param arr int整型一维数组 the array * @return int整型 */ public int maxsumofSubarray (int[] arr) { // write code here if(arr==null||arr.length<1){ return 0; } int max=arr[0]; for(int i=1;i<arr.length;i++){ //子串累加后大于 0 表示可以累加 否则 置0 中断累加 if((arr[i]+arr[i-1])>0){ arr[i]=arr[i]+arr[i-1]; max=Math.max(arr[i],max); }else{ //考虑到可能数组相加无正数的情况 max=Math.max(arr[i],max); arr[i]=0; } } return max; } }