【Leetcode】724-寻找数组的中心索引(Find Pivot Index)

724.寻找数组的中心索引.

在这里插入图片描述
在这里插入图片描述

解法.

  1. 从左到右遍历每一个位置,分别计算左右和,相等时返回索引。
  2. 从左到右遍历每一个位置,只累加左边和Left,当2*Left=AllSum-SplitValue时返回分割元素的索引。
class Solution:
    def pivotIndex(self, nums: List[int]) -> int:
        #Empty List.
        if len(nums)==0:
            return -1

        left=0
        right=sum(nums[1:len(nums)])
        #right equals 0.
        if left==right:
            return 0
        for i in range(1,len(nums)):
            left=left+nums[i-1]
            right=right-nums[i]
            if left == right:
                return i
        return -1

在这里插入图片描述

class Solution:
    def pivotIndex(self, nums: List[int]) -> int:
        #Empty List.
        if len(nums)==0:
            return -1
        AllSum=sum(nums)
        left=0
        for i in range(len(nums)):
            if 2*left+nums[i]==AllSum:
                return i
            left=left+nums[i]
        return -1

在这里插入图片描述

官方解答.

思想和解法2一致,其Python代码实现如下:

class Solution(object):
    def pivotIndex(self, nums):
        S = sum(nums)
        leftsum = 0
        for i, x in enumerate(nums):
            if leftsum == (S - leftsum - x):
                return i
            leftsum += x
        return -1

作者:LeetCode
链接:https://leetcode-cn.com/problems/find-pivot-index/solution/xun-zhao-shu-zu-de-zhong-xin-suo-yin-by-leetcode/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44246009/article/details/107344362