Find Pivot Index[LeetCode/Python3/Easy]

 


題目

給定一個整數數組 nums,計算這個數組中的「中心下標」。

中心下標的左邊所有數的和等於右邊所有數的和。

如果不存在中心下標,返回 -1。如果有多個中心下標,請返回最左邊那個。

範例 1:

輸入:nums = [1, 7, 3, 6, 5, 6]
輸出:3
解釋:
中心下標是 3 。
左邊數組的和為 nums[0] + nums[1] + nums[2] = 1 + 7 + 3 = 11 。
右邊數組的和為 nums[4] + nums[5] = 5 + 6 = 11 。

範例 2:

輸入:nums = [1, 2, 3]
輸出:-1
解釋:
這個數組中不存在中心下標。

範例 3:

輸入:nums = [2, 1, -1]
輸出:0
解釋:
中心下標是 0 。
左邊數組(加粗部分)的和為 0 。
右邊數組的和為 nums[1] + nums[2] = 1 + -1 = 0 。

提示:

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

我的答案

直覺答案

class Solution:
    def pivotIndex(self, nums: List[int]) -> int:
        if len(nums)==1:
            return 0

        for i in range(len(nums)):
            if sum(nums[:i]) == sum(nums[i+1:]):
                return i

        return -1

別人的答案

class Solution:
    def pivotIndex(self, nums: List[int]) -> int:
        """
        :type nums: List[int]
        :rtype: int
        """
        left_sum = 0
        right_sum = sum(nums)
        for i in range(len(nums)):
            if left_sum == right_sum - left_sum - nums[i]:
                return i
            left_sum += nums[i]
        return -1

速度好快呀!仔細看其實也沒很難,看來使用python built-in function 不一定在leetcode裡很有利!


留言

這個網誌中的熱門文章

[理財/記帳]google表單結合iphone捷徑 自製記帳app

[理財/記帳]利用google表單記帳雲端化 - 免費模板下載@ Mimi's learning notes

[理財/記帳]懶人記帳-現金流+信用卡管理記帳法-不用天天記帳