【python3】leetcode 724. Find Pivot Index (easy)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/maotianyi941005/article/details/84978820

724. Find Pivot Index (easy)

Given an array of integers nums, write a method that returns the "pivot" index of this array.

We define the pivot index as the index where the sum of the numbers to the left of the index is equal to the sum of the numbers to the right of the index.

If no such index exists, we should return -1. If there are multiple pivot indexes, you should return the left-most pivot index.

Example 1:

Input: 
nums = [1, 7, 3, 6, 5, 6]
Output: 3
Explanation: 
The sum of the numbers to the left of index 3 (nums[3] = 6) is equal to the sum of numbers to the right of index 3.
Also, 3 is the first index where this occurs.

Example 2:

Input: 
nums = [1, 2, 3]
Output: -1
Explanation: 
There is no index that satisfies the conditions in the problem statement.

Note:

  • The length of nums will be in the range [0, 10000].
  • Each element nums[i] will be an integer in the range [-1000, 1000].

这道题用python做速度很慢。

扫描二维码关注公众号,回复: 4497694 查看本文章

刚开始一直超时,因为每一次迭代都分别前后求和再比较:sum(left) == sum(right),这样的后果就是超级耗时!!!

后来看了discussion里的解法,要记录sum和left,right = sum - left - nums[i],或者用 left* 2 + nums[i] == sum来判断

class Solution:
    def pivotIndex(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        length = len(nums)
        sm = sum(nums)
        l = 0
        for i in range(length):
            if(l*2 == sm - nums[i]): return i
            l += nums[i]
        return -1
        

猜你喜欢

转载自blog.csdn.net/maotianyi941005/article/details/84978820