Skip to content

寻找数组的中心下标

题目

[724] 寻找数组的中心下标

一个整数数组 nums,请编写一个能够返回数组 “中心下标” 的方法。

数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。

如果数组不存在中心下标,返回 -1 。如果数组有多个中心下标,应该返回最靠近左边的那一个。

注意:中心下标可能出现在数组的两端。

代码

/**
 * @param {number[]} nums
 * @return {number}
 */
 var pivotIndex = function(nums) {
  let total = nums.reduce((acc, x) => acc += x, 0);

  let sum = 0;
  for (let i = 0; i < nums.length; i++) {
    sum += nums[i];
    // debugger;
    if (sum === total) {
      return i;
    }

    total -= nums[i];
  }

  return -1;
};