力扣——【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  
    #代码优化
相关推荐
JK0x073 小时前
代码随想录算法训练营 Day40 动态规划Ⅷ 股票问题
算法·动态规划
Feliz..3 小时前
关于离散化算法的看法与感悟
算法
水蓝烟雨4 小时前
1128. 等价多米诺骨牌对的数量
算法·hot 100
codists4 小时前
《算法导论(第4版)》阅读笔记:p11-p13
算法
Kidddddult6 小时前
力扣刷题Day 43:矩阵置零(73)
算法·leetcode·力扣
大龄Python青年8 小时前
C语言 交换算法之加减法,及溢出防范
c语言·开发语言·算法
啊我不会诶8 小时前
CF每日5题
算法
朱剑君10 小时前
排序算法——基数排序
算法·排序算法
COOCC110 小时前
PyTorch 实战:从 0 开始搭建 Transformer
人工智能·pytorch·python·深度学习·算法·机器学习·transformer
拾忆-eleven11 小时前
C++算法(19):整数类型极值,从INT_MIN原理到跨平台开发实战
数据结构·c++·算法