2.7.1 蓝桥杯基础算法之二维差分![](https://i-blog.csdnimg.cn/blog_migrate/6fdb63f90a8d32e55592a70ff52b2798.png)
二维差分是一种处理二维数组区间修改和查询问题的高效算法。与一维差分类似,二维差分主要用于当我们需要频繁对数组的某个子矩形区域进行增减操作,并且最后需要查询整个数组或者数组的某个子区域的时候。通过二维差分,我们可以将复杂度为O(n^2)的操作降低到O(1)。
基本概念
在详细介绍二维差分之前,我们先回顾一下一维差分的基本概念。一维差分数组的定义是:差分数组的第i个元素等于原数组的第i个元素和第i-1个元素的差值,即B[i] = A[i] - A[i-1]
。通过差分数组,我们可以快速实现对原数组的某个区间内所有元素进行同一增减操作。
二维差分的定义
对于一个二维数组a[i][j]
,其二维差分数组d[i][j]
可以定义为:d[i][j] = a[i][j] - a[i-1][j] - a[i][j-1] +