【前端算法每日一题】leetcode-724-寻找数组的中心下标

129 阅读1分钟

题目描述

  • 给你一个整数数组nums,请计算数组的 中心下标
  • 数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和
  • 数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和
  • 如果数组有多个 中心下标 ,应该返回最靠近左边的那一个。如果数组不存在 中心下标 ,返回-1

解题思路

等量关系解题:当前元素左侧元素值之和的两倍与当前元素值相加等于所有元素值之和

解题代码(JavaScript)

/**
 * @param {number[]} nums
 * @return {number}
 */
var pivotIndex = function (nums) {
  let sum = 0;
  let leftSum = 0;
  for (let i = 0; i < nums.length; i++) {
    sum += nums[i];
  }
  for (let j = 0; j < nums.length; j++) {
    if (leftSum * 2 + nums[j] === sum) {
      return j;
    }
    leftSum += nums[j];
  }
  return -1;
};