题目描述:
给定一个整数类型的数组 nums,请编写一个能够返回数组 “中心索引” 的方法。
我们是这样定义数组 中心索引 的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。
如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/find-pivot-index
一次遍历,设数组的和 s = sum(nums),左边和 ls 为0,则右边的和为 rs = s - ls - nums[i],如果ls == rs,则返回索引,否侧ls = ls + nums[i],循环。遍历结束后返回-1。
class Solution:
def pivotIndex(self, nums: List[int]) -> int:
# 经过几次的提交验证,没有元素的时候值是零,即索引0的左边的和为零
n = len(nums)
s = sum(nums)
ls = 0
for i in range (n):
if ls == s -ls - nums[i]:
return i
ls = ls + nums[i]
return -1