Max Contiguous Subarray :(
by rishul matta
JavaScript
function maxSubArray(A) {
function combinedArr(arr, low, mid, high) {
var leftSum = -99999;
let rightSum = -99999;
var leftIndex = mid;
let rightIndex = mid;
var sum = 0;
for (i = mid; i >= 0; --i) {
sum += arr[i];
if (sum > leftSum) {
leftIndex = i;
leftSum = sum;
}
}
sum = 0;
for (i = mid + 1; i <= high; ++i) {
sum += arr[i];
if (sum > rightSum) {
rightIndex = i;
rightSum = sum;
}
}
return {
left: leftIndex,
right: rightIndex,
sum: leftSum + rightSum
}
}
function minimum(arr, low, high) {
debugger;
if (low == high) {
return {
left: low,
right: high,
sum: arr[low]
}
}
let mid = Math.floor((high + low) / 2);
leftArr = minimum(arr, low, mid);
rightArr = minimum(arr, mid + 1, high);
combined = combinedArr(arr, low, mid, high);
if (leftArr.sum > rightArr.sum && leftArr.sum > combined.sum) {
return leftArr;
}
if (rightArr.sum > leftArr.sum && rightArr.sum > combined.sum) {
return rightArr;
}
return combined;
}
obj = minimum(A, 0, A.length-1)
return obj.sum;
}
maxSubArray([1, 2, 3])