当前位置: 首页> 科技> IT业 > 温州seo招聘_门户网站建设 知乎_亚洲卫星电视网参数表_李江seo

温州seo招聘_门户网站建设 知乎_亚洲卫星电视网参数表_李江seo

时间:2025/7/11 18:26:35来源:https://blog.csdn.net/2302_79031646/article/details/145856734 浏览次数:0次
温州seo招聘_门户网站建设 知乎_亚洲卫星电视网参数表_李江seo

目录

    • 1. 前缀和数组的递推公式: dp[i][j] = dp[i-1][j] + dp[i][j-1] + nums[i][j] - dp[i-1][j-1].
    • 2. 前缀和数组需要额外开一行一列.
    • 3. 想要快速求任意一个矩形和, 实际上是多个前缀和的拼凑.

今天来贴一道模板题 -> 二位前缀和

然后我们来简单总结两个公式:

因为这是一个 [模板题] 嘛, 所以我们重点说两个问题

  • 前缀和数组如何求解?
  • 如何利用前缀和数组?

1. 前缀和数组的递推公式: dp[i][j] = dp[i-1][j] + dp[i][j-1] + nums[i][j] - dp[i-1][j-1].

原理很简单, 我们可以看下面图:
在这里插入图片描述

我们以虚线和实线对图形进行分割, 实际上我们可以区分出A, B, C, D四大块来. 我们的dp[i, j]想要代表的是A + B + C + D区域的大小.
在这里插入图片描述
所以我们可得公式: dp[i][j] = dp[i-1][j] + dp[i][j-1] + nums[i][j] - dp[i-1][j-1].

2. 前缀和数组需要额外开一行一列.

显然, 我们根据上面公式, 当i = 0 或 j = 0的时候, 肯定会越界, 所以我们需要额外开一行一列来避免这种情况(当然进行特殊判断也可以).

在这里插入图片描述

3. 想要快速求任意一个矩形和, 实际上是多个前缀和的拼凑.

比如, 我想要求下面这个图的矩形和:
在这里插入图片描述
所以我们可以得到利用二维前缀和的公式是: ret = dp[i][j] - dp[i-1][j] - dp[i][j-1] + dp[i-1][j-1].

参考代码是:

int main(
关键字:温州seo招聘_门户网站建设 知乎_亚洲卫星电视网参数表_李江seo

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: