#前缀和思想
主要利用递推的思想,将数列的前n!项和存到一个新数列中,递推公式可能需要自己推导
一个数列的值等于另一个数列的第i个元素加上这一个数列的第i-1个元素
同时需要初始化这个数列的第一个元素=另一个数列的第一个元素
#思路
本题中,使用前缀和代替sum()函数,以减少时间复杂度
但是使用前缀和,需要新建一个数列,此过程中存在middleIndex越界问题,需小心
#递推思想
python
class Solution:
def findMiddleIndex(self, nums: List[int]) -> int:
n=len(nums)
s=[0 for i in range(n)]#相当于申请数组内存
s[0]=nums[0]
for i in range(1,n):
s[i]=s[i-1]+nums[i]
for middleIndex in range(n):
a=0
if middleIndex!=0:
a=s[middleIndex-1]#注意边界
b=s[n-1]-s[middleIndex]
if a==b:
# if sum(nums[:middleIndex])==sum(nums[middleIndex+1:]):
return middleIndex
return-1
#代码优化