1068. 寻找数组的中心索引
中文English给定一个整数数组nums
,编写一个返回此数组的“中心索引”的方法。
我们将中心索引定义为:中心索引左边的数字之和等于中心索引右边的数字之和。
如果不存在这样的中心索引,我们应该返回-1。 如果有多个中心索引,则应返回最左侧的那个。
样例
样例1:
输入:
nums = [1, 7, 3, 6, 5, 6]
输出: 3
解释:
索引3 (nums[3] = 6)左侧所有数之和等于右侧之和。
并且3是满足条件的第一个索引。
样例2:
输入:
nums = [1, 2, 3]
输出: -1
解释:
并没有满足条件的中心索引。
注意事项
-
nums
的长度范围为[0, 10000]
. -
nums[i]
中每个元素都是[-1000, 1000]
范围内的整数.
class Solution: """ @param nums: an array @return: the "pivot" index of this array """ ''' 大致思路: 1.给定初始值,left,right = 0,sum(nums),一次求和即可,不用多次求和。双指针的方法,left += nums[index],right -= nums[index] 2.如果left == right ,则直接返回index,否则-1 ''' def pivotIndex(self,nums): left,right = 0,sum(nums) for index in range(len(nums)): right -= nums[index] if left == right: return index left += nums[index] return -1