前缀和 && 差分

本文介绍了差分和前缀和在算法中的重要性,详细解释了一维和二维前缀和的概念、计算方法以及它们在解决实际问题中的应用,如二维前缀和在贴邮票问题中的应用。同时提到了等差差分和相关练习题目,帮助读者理解和掌握这些基础算法技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

差分和前缀和都是算法里边比较重要的知识点,不过学习的难度并不高,这篇文章会讲解相关的内容。

1. 前缀和怎么玩

1)一维前缀和

在该数之前,包括该数的所有数之和,有点类似高中学的数列的前n项和Sn。

2)二维前缀和

根据原数组生成sum数组,sum[i][j]表示从(0, 0)到(i, j)这个范围内的累加和

求法:依次求 左 + 上 - 左上 + 自己,再从左到右,从上到下生成

*往往补第0行、第0列来减少条件判断

【图解】

Q:如果要求某个范围内的累加和怎么办?

设求(a, b)到(c, d)的累加和,则累加和就是

sum[c][d] - sum[a-1][d] - sum[c][b-1] + sum[a-1][b-1]

根据sum数组的定义和下面的图解就非常清晰了

图解如下:

【练习】

有一道模版题,大家可以试着做做:链接

核心的思路就是二维前缀和,我的代码如下: 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值