目录
子数组的最大累加和问题
题目描述
给定一个数组arr,返回子数组的最大累加和
例如,arr = [1, -2, 3, 5, -2, 6, -1],所有子数组中,[3, 5, -2, 6]可以累加出最大的和12,所以返回12.
题目保证没有全为负数的数据
[要求]
时间复杂度为,空间复杂度为
示例1
输入
[1, -2, 3, 5, -2, 6, -1]
返回值
12
备注:
,
方法:动态规划
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
int max=arr[0];
int sum=0;
for (int i = 0; i < arr.length; i++) {
sum+=arr[i];
max=Math.max(sum,max);
sum=sum>0?sum:0;
}
return max;
}
}