[LeetCode] 724.Find Pivot Index

这道题暴力的做法就是O(N^2),但是通过观察,我们可以得到一个数学公式,即 total_sum + nums[i] == 2*current_sum 通过这个关系,我们可以先求出来total_sum, 然后loop trough,每一个position i,看看是不是满足这个公式。满足就可以return i,记住,每次向后loop的时候,current_sum都要把当前位置的nums[i]加进去。

class Solution:
    def pivotIndex(self, nums: List[int]) -> int:
        if not nums:
            return -1
        
        total_sum = sum(nums)
        current_sum = 0
        
        for i in range(len(nums)):
            if current_sum == total_sum - current_sum - nums[i]:
                return i
            current_sum += nums[i]
            
            
        return -1

猜你喜欢

转载自www.cnblogs.com/codingEskimo/p/12154600.html