子数组的最大累加问题
子数组的最大累加和问题
http://www.nowcoder.com/questionTerminal/554aa508dd5d4fefbf0f86e5fe953abd
动态规划问题,明显的一维表 这边直接改传进来的数组即可,需要记录比较最大值
整体推到过程 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;
}
}
阿里巴巴灵犀互娱公司福利 668人发布
