算法学习(六)前缀和

前缀和

1. 概念

前缀和算法是一种用于高效计算数组前缀和的算法。前缀和是指从数组的起始位置到某一位置的所有元素的和。

下面是前缀和算法的基本步骤:

创建一个与原始数组相同长度的前缀和数组。初始时,前缀和数组的第一个元素与原始数组的第一个元素相同。

从第二个元素开始,遍历原始数组,计算每个位置处的前缀和,即将前一个位置的前缀和与当前位置的元素相加。

将计算得到的前缀和存储到前缀和数组的相应位置。

完成遍历后,前缀和数组中存储了原始数组每个位置的前缀和值。

2. 解题技巧(我的总结)

1> 复杂问题求多个子前缀和简化算法过程

题目说明实现
1664. 生成平衡数组的方案数对奇数位和偶数位分别求前缀和我的提交

2> 前缀和➕哈希表解决子数组目标和问题(容斥原理)

题目说明实现
1074. 元素和为目标值的子矩阵数量容斥原理我的提交
1010. 总持续时间可被 60 整除的歌曲容斥原理我的提交
1442. 形成两个异或相等数组的三元组数目注意初始值{0:{-1}, arr[0]:{0}}我的提交
2001. 可互换矩形的组数可替换的矩形,对应着唯一的最简比例,即组合计数问题,采用用容斥定理解决我的提交

3. 更多练习

4. 参考

  1. 大部分参考自:前缀和算法
  2. 总库:tryHard
  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值