这里采用移动的思想,初始时下标0当作分割点,判断符不符合
之后向右移动。因为不包含分割点,所以先减nums[i]
def pivotIndex(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
r_sum = sum(nums)
l_sum = 0
for i in range(len(nums)):
r_sum -= nums[i]
if l_sum == r_sum:
return i
l_sum += nums[i]
return -1
采用前缀和思想。右半部分的和等于总和减左半部分减分割点
def pivotIndex(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
total = sum(nums)
l_sum = 0
for i in range(len(nums)):
if l_sum == total-nums[i]-l_sum:
return i
l_sum += nums[i]
return -1