[bug]
class Solution {
public int maxSubArray(int[] nums) {
return recur(nums, 0, nums.length-1);
}
int recur(int[] nums, int l, int r){
if(l==r){
return nums[l];
}
int mid = (l+r)/2;
int sub1=0, sub2=0;
if(l<=mid){
sub1 = recur(nums, l, mid);
}
if(mid+1<=r){
sub2 = recur(nums, mid+1, r);
}
int sum = 0;
int cross2=0, cross1=0;
for(int i=mid;i<=r;i++){
sum += nums[i];
cross2 = Math.max(cross2, sum);
}
sum = 0;
for(int i=mid-1;i>=l;i--){
sum += nums[i];
cross1 = Math.max(cross1, sum);
}
return Math.max(cross1+cross2, Math.max(sub1, sub2));
}
}```