303. 区域和检索 - 数组不可变
给定一个整数数组 nums*,求出数组从索引 *i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。
示例:
1 | 给定 nums = [-2, 0, 3, -5, 2, -1],求和函数为 sumRange() |
说明:
- 你可以假设数组不可变。
- 会多次调用 sumRange 方法。
注意到 “假设数组不可变” 这个条件,我们可以自然地想到直接将一些区域和存储起来,多次调用 sumRange 方法时只用 O(1) 时间复杂度就可以得到结果。
在数组初始化的时候生成一个前 n 项和的数组。
1 | class NumArray { |
时间复杂度O(n),空间复杂度O(n)。