1
我想知道是否有一种方法可以将数值添加到具有特定“步骤”的[x, y]
(具有查询列表)的范围内,速度更快比O(queries * (range_length/step))
:你应该加上这样的值:对于每个pos = x + k * step
,其中k
从0变到无穷大,pos <= y
,array[pos] += value
。添加具有特定“步骤”的查询列表中的值
我想到了在另一个数组添加值,就像这样:
auxarray[x] += value;
auxarray[y + 1] -= value;
for (int i = 1; i <= size; ++i) {
auxarray[i] += auxarray[i - 1];
array[i] += auxarray[i];
}
不幸的是,我不知道如何处理该值不应该被加入到细胞做。
这也是我的方法,但正如我所看到的,它需要大量的时间。查询的数量可以达到100000,数组的长度也是如此。 编辑:的确,它是“长度/步长”,但我想知道我是否可以使用其他数组或数据结构。 – mike