publicintbinarySubArray(int[] nums,int left,int right){ if(left == right){ return nums[left]; } int center = (right +left )>>1; int leftMaxValue = binarySubArray(nums,left,center);//左边的最大子序列和 int rightMaxValue = binarySubArray(nums,center+1,right);//右边的最大子序列和 int centerLeftMaxValue=0;//从中心往左遍历找到的最大值(必须包含中心点) int centerRightMaxValue=0;//从中心往右遍历找到的最大值(必须包含中心点) int sumLeft=0;//用于记录遍历左侧的sum值 int sumRight=0;//用于记录遍历右侧的sum值