前缀和算法模板

一维前缀和

算法用途:快速求出数组中某一连续区间的和

一维前缀和算法模板

1、预处理出一个 dp 数组

要求原数组存储在 n + 1 的空间大小中,其中后 n 个空间存数据。

dp数组,数组开 n + 1个空间,dpi 表示 1, i 区间内所有元素的和。

处理方法: dp i = dp i - 1 + arr i

2、使用前缀和数组

**区间 l 到 r 的和:**sum = dp r - dp l - 1

复杂度分析

处理前缀和数组,需要 O(N) 的空间复杂度和空间复杂度,求一次区间 l 到 r 的和,需要 O(1) 的时间复杂度,如果需要求 q 次和,则时间复杂度就是 O(q) + O(N)

二维前缀和

算法用途:快速求出某个子矩阵的和

二维前缀和算法模板

1、预处理出一个 前缀和矩阵(二维数组 dp)

假设原矩阵有 m 行,n列,那么这个前缀和矩阵的二维数组 dp 要开 m+1 行, n+1 列的空间,第一行,第一列的数据都为 0, dp i j 表示 1, i 行, 1, j 列包含的这个矩阵的数据和

处理方法: dp i j = dp i - 1 j + dp i j - 1 - dp i - 1 j - 1 + arr i j

2、使用前缀和矩阵

x1, y1 ~ x2, y2 = dp x2, y2 - dp x1- 1 y2 - dp x2 y2 - 1 + dp x1 y1

二维数组前缀和的建立和使用图解

相关推荐
BK贝壳5 小时前
bool-hybrid-array 落盘我只认 .bha:用 Create_BHA / Ask_BHA 做布尔数组序列化
数据结构·python·numpy·1024程序员节
企业数字化笔记8 小时前
视频人体姿态怎么做三维可视化?2D关键点、深度局限与技术选型
人工智能·算法·音视频
?abc!9 小时前
(数组)581. 最短无序连续子数组
数据结构·算法·leetcode
小郎君65811 小时前
MPTT树复选框的半选状态:一棵百万节点树从递归到计数器,再到区间覆盖
算法
酌沧11 小时前
MemT让记忆成为模型内生能力
jvm·人工智能·算法
Shimeri12 小时前
越卷越像:我用遗传算法做了个"内卷"实验
算法·three.js·数据可视化·遗传算法·进化算法
Evand J12 小时前
【PMSM例程1】永磁同步电机(PMSM)转速与转子电角度观测算法|基于扩展卡尔曼滤波(EKF)的传感器状态估计与误差。附下载链接
算法·电机·1024程序员节·卡尔曼滤波
guo_wen_qiang12 小时前
二叉树的层序遍历-使用双端队列Deque
算法·leetcode·1024程序员节
爱读书的小胖13 小时前
LeetCode 55 跳跃游戏 C 语言解题分析
c语言·数据结构·算法·leetcode·1024程序员节
CCblandy13 小时前
前缀缓存命中率不靠引擎靠排列:本机仿真 3 轮,易变字段放开头 98.0%→0.0%
人工智能·python·算法·自然语言处理·性能优化