二维前缀和

经过了一维前缀和的学习,我们可以踏入二维的阶段了,哼哼~,现在才是真正的技术

二维前缀和,顾名思义,就是存储在二维数组的前缀和,一维前缀和是从a[1]加到a[i],那二维前缀和就是从a[1][1]加到a[i][j]了。

二维前缀和前缀和看似很简单,但你看到那一行的代码可能会晕(是可能),我们可以先看图

一个表格a,里面封印着每个格子的值,叫你搞出它每个格子的前缀和,那就得知道二维前缀和咋算

前面讲过了,二为前缀和就是以a[i][j]为左下角,以a[1][1]为左上角,将这个子矩阵里面所有的值加起来就得到了b[i][j]

从一维前缀和的学习中我们知道了一个道理:

“不要老暴力,否则被雷劈”

没错,不要暴力,会TLE,咋办捏?

欸,如果我们一行一行的求的话,那在求b[i][j]时一定已经把b[i-1][j]和b[i][j-1](b[i][j]的上方和左边)求出来了,说不定b[i-1][j]和b[i][j-1]就是个突破口

我们来画个图:

这不出来了吗?再加上a[i][j]就……不对,有个地方多加了:

简单咯,减一下b[i-1][j-1]就完了

那么,我们总结个公式:<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值