力扣 動態規劃 區域和檢索 陣列不可變

2021-09-12 07:47:04 字數 1023 閱讀 2320

給定乙個整數陣列 nums,求出陣列從索引 i 到 j (i ≤ j) 範圍內元素的總和,包含 i, j 兩點。

示例:

給定 nums = [-2, 0, 3, -5, 2, -1],求和函式為 sumrange()

sumrange(0, 2) -> 1

sumrange(2, 5) -> -1

sumrange(0, 5) -> -3

說明:

你可以假設陣列不可變。

會多次呼叫 sumrange 方法。

這道題演算法沒啥的,但是告訴我們乙個道理,在力扣上刷題不 要 使 用 全 局 變 量!!!

否則可能會出現執行沒錯提交出錯的情況!

python code

class

numarray

:def

__init__

(self, nums:

list):

ifnot

len(nums)

:return

self.sums =

0])for i in

range(1

,len

(nums)):

1]+ nums[i]

)def

sumrange

(self, i:

int, j:

int)

->

int:

if i ==0:

return self.sums[j]

return self.sums[j]

- self.sums[i -

1]

c++ code
class numarray 

intsumrange

(int i,

int j)

};

區域和檢索 陣列不可變

注意需要多次呼叫sumrange方法,所以不能簡單的進行區間遍歷求和,動態規劃一下,記錄一下 每個區間的和,然後根據索引直接求出結果。class numarray sums new int length sums 0 nums 0 for int i 1 i length i public int ...

區域和檢索 陣列不可變

給定乙個整數陣列 nums,求出陣列從索引 i 到 j i j 範圍內元素的總和,包含 i,j 兩點。示例 給定 nums 2,0,3,5,2,1 求和函式為 sumrange sumrange 0,2 1 sumrange 2,5 1 sumrange 0,5 3 說明 你可以假設陣列不可變。會多...

區域和檢索 陣列不可變

給定乙個整數陣列 nums,求出陣列從索引 i 到 j i j 範圍內元素的總和,包含 i,j 兩點。給定 nums 2,0,3,5,2,1 求和函式為 sumrange sumrange 0,2 1 sumrange 2,5 1 sumrange 0,5 3 你可以假設陣列不可變。會多次呼叫 su...