import java.util.*;


public class Solution {
    /**
     * max sum of the subarray
     * @param arr int整型一维数组 the array
     * @return int整型
     */
    public int maxsumofSubarray (int[] arr) {
        if(arr.length ==1){
            return arr[0];
        }else{
            int max = Integer.MIN_VALUE;
            int cur = 0;
            for( int i=0;i<arr.length;i++){
                cur = arr[i]+ cur;
                cur = cur < 0 ? 0:cur;
                max = Math.max( max,cur);
            }
            return max;
        }
        
        
//         if( arr.length == 1){
//             return arr[0];
//         }else{
//             int max = arr[0];
//             for( int i=1; i<arr.length; i++){
//                 arr[i] += arr[i-1];
//             }
//             for( int j=arr.length-1;j>=0;j--){
//                 max = max < arr[j] ? arr[j]:max;
//                 for(int k=0; k<=j; k++){
//                     max = (max < arr[j]-arr[k])? arr[j]-arr[k] : max;
//                 }
//             }
//             return max;
//         }
        
    }
}