1068. 寻找数组的中心索引

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

 

上一篇:【报错解决】启动Print Spooler报错“1068:依赖服务或组无法启动”


下一篇:1068 万绿丛中一点红 (20 分)测试点3、5