zoukankan      html  css  js  c++  java
  • 寻找数组的中心索引(我好菜0

    题目:给定一个整数类型的数组 nums,请编写一个能够返回数组“中心索引”的方法。

    我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。

    如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。

    说明:

    • nums 的长度范围为 [0, 10000]
    • 任何一个 nums[i] 将会是一个范围在 [-1000, 1000]的整数

    代码:

    class Solution:
        def pivotIndex(self, nums: List[int]) -> int:
            
            le,ri = 0,0
            lens = len(nums)
            if lens <= 0 :
                return -1
            sums = sum(nums)
    
            for i in range(lens):
                if le + nums[i] == sums - le:
                    return i
                le += nums[i]
            return -1
    import copy
    class Solution(object):
        def pivotIndex(self, nums):
            """
            :type nums: List[int]
            :rtype: int
            """
            if not nums: return -1 # 空list情况
            sum_left = 0
            sum_right = sum(nums)-nums[0] 
            if sum_left == sum_right: return 0 # 初始化:下标0为中心索引
            for i in range(1,len(nums)): # 扫描,计算左边和是否等于右边和
                sum_left += nums[i-1]
                sum_right -= nums[i]
                if sum_left == sum_right:
                    return i
            return -1

    菜的原因:

    class Solution:
        def pivotIndex(self, nums: List[int]) -> int:
            sum1=0
            sum2=0
            a=0
            if(len(nums)<=0):
                return -1
            for i in range(len(nums)):
                sum1+=nums[i]
                num.reverse()
                t=len(nums)-i-2
                for j in range(t):
                    sum2+=nums[j]
                if(sum1==sum2):
                        a=i
                if(a==0):
                    a=-1
                nums.reverse()
                sum1=0
                sum2=0
            return a

    我总是想用颠倒相加的方法去计算,别管减什么,肯定都不对了,因为最后i会遍历全部,颠倒后取值要分情况,gg

  • 相关阅读:
    golang并发编程:通道
    golang并发编程:并发同步概述
    java网络通信:TCP协议
    Java基础:GC机制
    Java基础:内存模型
    Java基础:泛型
    Java基础:异常机制
    JavaWEB开发框架:Shiro
    Spring:与Redis的集成
    Spring:面向切片编程
  • 原文地址:https://www.cnblogs.com/dmndxld/p/10786391.html
Copyright © 2011-2022 走看看