力扣——【1991. 找到数组的中间位置】

#前缀和思想

主要利用递推的思想,将数列的前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  
    #代码优化
相关推荐
Allen_LVyingbo5 分钟前
病历生成与质控编码的工程化范式研究:从模型驱动到系统治理的范式转变
前端·javascript·算法·前端框架·知识图谱·健康医疗·easyui
一起努力啊~5 分钟前
算法刷题--螺旋矩阵II+区间和+开发商购买土地
数据结构·算法·leetcode
Swift社区6 分钟前
LeetCode 470 用 Rand7() 实现 Rand10()
算法·leetcode·职场和发展
闻缺陷则喜何志丹8 分钟前
【图论 DFS 换根法】3772. 子图的最大得分|2235
c++·算法·深度优先·力扣·图论·换根法
一只大侠的侠10 分钟前
Python实现TTAO算法:优化神经网络中的时序预测任务
python·神经网络·算法
千金裘换酒8 小时前
LeetCode 移动零元素 快慢指针
算法·leetcode·职场和发展
wm10439 小时前
机器学习第二讲 KNN算法
人工智能·算法·机器学习
NAGNIP9 小时前
一文搞懂机器学习线性代数基础知识!
算法
NAGNIP9 小时前
机器学习入门概述一览
算法
iuu_star9 小时前
C语言数据结构-顺序查找、折半查找
c语言·数据结构·算法