一.二维前缀和的介绍
在已经掌握一维前缀和的基础上,我们接下来可以思考在二维的平面上的问题了。在一维前缀和的问题中,我们讨论的是某一个区间内的元素之和,那如果放在一个二维平面,我们要的就是某个矩阵的和。
比如下面的二维矩阵:
0 | 3 | 2 | 1 | 0 |
11 | 3 | 7 | 8 | 9 |
4 | 7 | 0 | 1 | 2 |
3 | 4 | 5 | 7 | 18 |
1 | 2 | 7 | 0 | 3 |
我们目标要求标红的矩阵里所有元素之和,最原始的做法就是for循环遍历矩阵中的所有元素并不断相加。那有了一维前缀和的基础,我们可以将一个二维的图看成是n个一维的图连起来形成的。所以我们在每一行上,存它的一维前缀和,那这个表格就变成如下: