303. Range Sum Query - Immutable
題目網址:https://leetcode.cn/problems/range-sum-query-immutable/
題意:給一 array, 多次輸入不同的
left
和right
, 求 array 中從idx = left
到idx = right
之和。
Solution 1:
想法: 每一次 query 都去計算
class NumArray { |
令 query
次數:m
次, nums
中元素個數:n
- time:$O(m \cdot n)$ ➔
m
次 query,每次 query 需 $O(n)$ 時間 - space:$O(n)$ ➔
nums_
Solution 2:
想法:利用 Prefix Sum, 事先計算前
i
個數之和
sums 紀錄前 i 個數之和 |
class NumArray { |
令 query
次數:m
次, nums
中元素個數:n
- time:$O(m+n)$ ➔ $O(n)$ + $m * O(1)$
- $O(n)$ : 計算 prefix sum 的時間
- $m * O(1)$ :
m
次 query, 每次 query 只需 $O(1)$ 時間
- space:$O(n)$ ➔
sums
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Zako's Blog!
評論