Skip to content

Latest commit

 

History

History
48 lines (36 loc) · 855 Bytes

File metadata and controls

48 lines (36 loc) · 855 Bytes

Screen Shot 2022-09-15 at 18 41 09

function findEvenIndex(arr) {
  let pivot = 0;
  let leftSum = 0;
  let rightSum = 0;

  while (pivot < arr.length) {
    for (let i = 0; i < pivot; i++) {
      leftSum += arr[i];
    }

    for (let j = pivot + 1; j < arr.length; j++) {
      rightSum += arr[j];
    }

    if (leftSum === rightSum) {
      return pivot;
    }
    pivot++;
    leftSum = 0;
    rightSum = 0;
  }

  return -1;
}

Best Practice

function findEvenIndex(arr) {
  let left = 0,
    right = arr.reduce((pv, cv) => pv + cv, 0);
  for (let i = 0; i < arr.length; i++) {
    if (i > 0) left += arr[i - 1];
    right -= arr[i];

    if (left === right) return i;
  }

  return -1;
}