用变量dp维护子数组的左边界的同时维护一个最大值
public int maxsumofSubarray (int[] arr) {
int dp = 0;
int max = Integer.MIN_VALUE;
for(int i = 0 ;i < arr.length ;i++){
dp += arr[i];
max = Math.max(max,dp);
if(dp < 0)
dp = 0;
}
return max;
}