LeetCode-寻找数组的中心索引

138 阅读1分钟

题目描述

LeetCode题源

思路

leftSum === rightSum // 左边之和等于右边之和
leftSum + nums[i] + rightSum === totalSum
leftSum * 2 + nums[i] === totalSum;

我的解题

/**
 * @param {number[]} nums
 * @return {number}
 */
var pivotIndex = function(nums) { 
   // 先求总和
   if(nums.length > 0) {
        var totalSum = nums.reduce((a, b) => a + b);
        let leftSum = 0;
        for (var i = 0; i < nums.length; i++) {
            if(leftSum * 2 + nums[i] === totalSum) {
                return i;
            } else {
                leftSum += nums[i];
            }
        }
        return -1;
    } else {
        return -1;
    }
};

执行结果

遇到问题

没有考虑全面,当nums的长度为0时,reduce报错了

TypeError: Reduce of empty array with no initial value