题目描述
724. 寻找数组的中心下标 - 力扣(LeetCode) (leetcode-cn.com)
nums
数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。
0
如果数组有多个中心下标,应该返回 最靠近左边 的那一个。如果数组不存在中心下标,返回 -1 。
示例 1:
示例 2:
示例 3:
提示:
1 <= nums.length <= 10^4
-1000 <= nums[i] <= 1000
思路分析
暴力 破解思路 遍历数组每一位,计算出每一位左侧所有值和右侧所有值,然后进行比较。复杂度为 O(n²);
优化暴力 破解
其实遍历时,无需每次都计算所有的值,我们可以利用上一次计算好的值,增减一位即可得到本次的目标值。
[1, 2, 3 ,4 ,5, 6]
遍历1:当前位为1,leftSum[0]=0, rightSum[0]=20;
遍历2:当前位为2,leftSum[1]=leftSum[0]+nums[0] = 1, rightSum[1] = rightSum[0] - nums[1] = 18;
遍历3:当前位为3,leftSum[2]=leftSum[1]+nums[1] = 3, rightSum[2] = rightSum[1] - nums[2] = 15;
........