303. 区域和检索 - 数组不可变
#前缀和与差分
2025-01-21
1 |
|
前缀和在涉及计算区间和的问题时非常有用。
因为我这里构建前缀和的时候,并没有像有些人在构建前缀和那样,额外比原数组多一个空间来存储元素 0,就像下面这种:
正因为如此,sumRange 会有一个逻辑判断,当 left = 0 的时候,原来的计算公式 find_data[right] - find_data[left - 1] 就出现数组越界问题。
就算我们按照前面这个图片的构建前缀和思路来理解,带入这个公式计算 find_data[left - 1] 是为 0。因此按照我构建前缀和的那种思路来看,如果 left = 0,只需要返回 find_data[right] 即可,思路稍有差异,原理却是不变。