二维前缀和

简介: 二维前缀和

我们计算一维前缀和时的得心应手,但是到二维前缀和就有点力不从心了,这里总结了一下规律:

计算二维前缀和时我喜欢从下标为1的时候开始:



    per[i][j]=per[i][j-1]+per[i-1][j]-per[i-1][j-1]+a[i][j];


i表示行,j表示列,i和j从1开始;

这样就可以计算出下标为[i][j]的二维矩阵的前缀和了;

我们来看一下这道题:

【模板】二维前缀和_牛客题霸_牛客网



有了上面的方法,我们可以计算出前缀和,那么怎么计算查询结果呢?

当我们看图仔细分析一下,不难发现:



 per[x2][y2]-per[x2][y1-1]-per[x1-1][y2]+per[x1-1][y1-1];


也可以用这样的公式表示出来;

这道题的难点就在于求二维数组的前缀和,不过看了这篇博客,相信也解决了这个问题;

相关文章
|
Web App开发 数据可视化 前端开发
测试篇:性能监测之Performance、LightHouse 与性能 API
测试篇:性能监测之Performance、LightHouse 与性能 API
测试篇:性能监测之Performance、LightHouse 与性能 API
|
Linux
百度搜索:蓝易云【Linux系统ps命令:查看正在运行的进程】
通过这些简洁的ps命令用法,你可以方便地查看Linux系统中正在运行的进程信息。
193 1
基于zlibCompress + Base64实现字符串与二维码的生成和恢复
文章介绍了如何使用zlib进行数据压缩和解压缩,以及如何结合Base64编码解码来生成和恢复包含压缩数据的二维码。
146 0
|
11月前
|
存储 索引 Python
Python散列类型(1)
【10月更文挑战第9天】
113 0
|
JavaScript 前端开发
jQuery的作用及入口函数
jQuery的作用及入口函数
101 1
|
存储 SQL 关系型数据库
MySQL 利用 frm 文件和 ibd 文件恢复表结构和表数据
MySQL 利用 frm 文件和 ibd 文件恢复表结构和表数据
2452 0
|
缓存 JavaScript 前端开发
JS代码拆分方法 是对的还是错的?
JS代码拆分方法 是对的还是错的?
87 3
|
自然语言处理 编译器 Linux
C++学习笔记(一)——入门基础(一)
C++学习笔记(一)——入门基础
C++学习笔记(一)——入门基础(一)
|
NoSQL Redis
Redis集群环境各节点无法互相发现与Hash槽分配异常 CLUSTERDOWN Hash slot not served的解决方式
Redis集群环境各节点无法互相发现与Hash槽分配异常 CLUSTERDOWN Hash slot not served的解决方式
442 0
|
Linux Shell
Linux脚本获取输入参数判断文件还是文件路径
Linux脚本获取输入参数判断文件还是文件路径
102 4