力扣——【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  
    #代码优化
相关推荐
短尾黑猫6 分钟前
[LeetCode 1696] 跳跃游戏 6(Ⅵ)
算法·leetcode
矛取矛求6 分钟前
栈与队列习题分享(精写)
c++·算法
袖清暮雨23 分钟前
【专题】搜索题型(BFS+DFS)
算法·深度优先·宽度优先
LuckyLay34 分钟前
LeetCode算法题(Go语言实现)_46
算法·leetcode·golang
alicema111144 分钟前
Python-Django集成yolov识别模型摄像头人数监控网页前后端分离
开发语言·后端·python·算法·机器人·django
胡乱儿起个名1 小时前
C++ 标准库中的 <algorithm> 头文件算法总结
开发语言·c++·算法
uhakadotcom2 小时前
使用NLTK和jieba进行中文情感分析的简单教程
算法·面试·github
CodeJourney.3 小时前
利用DeepSeek实现文档到流程图的高效转换:技术应用与实践探索
数据库·人工智能·算法·excel·流程图
电子连接器CAE与高频分析3 小时前
MATLAB求和∑怎么用?
人工智能·算法·matlab
studyer_domi3 小时前
Matlab 分数阶PID控制永磁同步电机
开发语言·算法·matlab