LeetCode題解(0303):計算數組範圍內的元素總和(Python)

題目:原題鏈接(簡單)

解法 時間複雜度 空間複雜度 執行用時
Ans 1 (Python) O(j-i) O(n) 7296ms (5.37%)
Ans 2 (Python) O(1) O(n) 100ms (75.87%)

LeetCode的Python執行用時隨緣,只要時間複雜度沒有明顯差異,執行用時一般都在同一個量級,僅作參考意義。

解法一(基本實現方法):

class NumArray:

    def __init__(self, nums: List[int]):
        self.nums = nums

    def sumRange(self, i: int, j: int) -> int:
        ans = 0
        for k in range(i, j + 1):
            ans += self.nums[k]
        return ans

解法二(緩存求和結果):

class NumArray:

    def __init__(self, nums: List[int]):
        self.adds = [0]
        add = 0
        for i in range(len(nums)):
            add += nums[i]
            self.adds.append(add)
        print(self.adds)

    def sumRange(self, i: int, j: int) -> int:
        return self.adds[j + 1] - self.adds[i]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章