题目描述
思路
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报错了