724. 寻找数组的中心下标
给你一个整数数组 nums,请编写一个能够返回数组 “中心下标” 的方法。
数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。
输入:nums = [1, 7, 3, 6, 5, 6]
输出:3
- 时间复杂度:对数组进行线性扫描。复杂度为 O(n)
空间复杂度:O(1)
//前缀和解法func pivotIndex(nums []int) int {total := 0 //1,空和,标记的一侧没有元素for _, v := range nums {total += v //2,先遍历一遍数组,得到所有的和}sum := 0for i, v := range nums { //3,遍历前数组,当 左sum== 右total-sum-v 时,返回中心指针if 2*sum + v == total {return i}sum += v //4,sum的定义,累加器存储}return -1}
