题目描述
给定一个数组arr,返回子数组的最大累加和
例如,arr = [1, -2, 3, 5, -2, 6, -1],所有子数组中,[3, 5, -2, 6]可以累加出最大的和12,所以返回12.
[要求]
时间复杂度为O(n)O(n),空间复杂度为O(1)O(1)
public int maxsumofSubarray (int[] arr) {
// write code here
int sum=0;
int temp=0;
for(int i=0;i<arr.length;i++){
temp += arr[i];
sum=Math.max(sum,temp);//返回sum和temp中一个最大的
temp = temp<0?0:temp;//赋值正数
}
return sum;
}