当前位置:网站首页>LeetCode 724. Find the central subscript of the array

LeetCode 724. Find the central subscript of the array

2022-06-24 02:42:00 freesan44

Title address (724. Find the central subscript of the array )

https://leetcode-cn.com/problems/find-pivot-index/

Title Description

 Give you an array of integers  nums , Please calculate the of the array   Center subscript  .

 Array   Center subscript   Is a subscript of the array , The sum of all elements on the left is equal to the sum of all elements on the right .

 If the central subscript is at the leftmost end of the array , Then the sum of the numbers on the left is regarded as  0 , Because there is no element to the left of the subscript . This also applies to the fact that the central subscript is at the rightmost end of the array .

 If the array has multiple central subscripts , Should return to   Closest to the left   The one of . If the array does not have a central subscript , return  -1 .

 

 Example  1:

 Input :nums = [1, 7, 3, 6, 5, 6]
 Output :3
 explain :
 The central subscript is  3 .
 The sum of the numbers on the left  sum = nums[0] + nums[1] + nums[2] = 1 + 7 + 3 = 11 ,
 The sum of the numbers on the right  sum = nums[4] + nums[5] = 5 + 6 = 11 , Two equal .


 Example  2:

 Input :nums = [1, 2, 3]
 Output :-1
 explain :
 There is no central subscript in the array that satisfies this condition .

 Example  3:

 Input :nums = [2, 1, -1]
 Output :0
 explain :
 The central subscript is  0 .
 The sum of the numbers on the left  sum = 0 ,( Subscript  0  There is no element on the left ),
 The sum of the numbers on the right  sum = nums[1] + nums[2] = 1 + -1 = 0 .

 

 Tips :

1 <= nums.length <= 104
-1000 <= nums[i] <= 1000

 

 Be careful : This topic and the main station  1991  The question is the same :https://leetcode-cn.com/problems/find-the-middle-index-in-array/

Ideas

Sum up first , Then deduct from the left

Code

  • Language support :Python3

Python3 Code:

class Solution:
    def pivotIndex(self, nums: List[int]) -> int:
        rRes = sum(nums)
        lRes = 0
        for index,val in enumerate(nums):
            rRes -= val
            # print(lRes,rRes)
            if rRes == lRes:
                return index
            lRes += val
        return -1

Complexity analysis

Make n Is array length .

  • Time complexity :$O(n)$
  • Spatial complexity :$O(1)$
原网站

版权声明
本文为[freesan44]所创,转载请带上原文链接,感谢
https://yzsam.com/2021/10/20211025184747422t.html