LeetCode 308. 二维区域和检索 - 可变(前缀和)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

给你一个 2D 矩阵 matrix,请计算出从左上角 (row1, col1) 到右下角 (row2, col2) 组成的矩形中所有元素的和。
在这里插入图片描述

上述粉色矩形框内的,该矩形由左上角 (row1, col1) = (2, 1) 和右下角 (row2, col2) = (4, 3) 确定。其中,所包括的元素总和 sum = 8。

示例:
给定 matrix = [[3, 0, 1, 4, 2],[5, 6, 3, 2, 1],[1, 2, 0, 1, 5],[4, 1, 0, 1, 7],[1, 0, 3, 0, 5]
]
sumRegion(2, 1, 4, 3) -> 8
update(3, 2, 2)
sumRegion(2, 1, 4, 3) -> 10注意:
矩阵 matrix 的值只能通过 update 函数来进行修改
你可以默认 update 函数和 sumRegion 函数的调用次数是均匀分布的
你可以默认 row1 ≤ row2,col1 ≤ col2

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/range-sum-query-2d-mutable
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 类似题目:LeetCode 304. 二维区域和检索 - 矩阵不可变(DP)
  • 二维树状数组可以更高效,树状数组默写不来
  • 用行的前缀和做,时间复杂度O(n)
class NumMatrix {vector<vector<int>> mat;vector<vector<int>> rowpresum;
public:NumMatrix(vector<vector<int>>& matrix) {mat = matrix;rowpresum = matrix;for(int i = 0, j; i < matrix.size(); ++i){for(j = 1; j < matrix[0].size(); ++j)rowpresum[i][j] = rowpresum[i][j-1] + matrix[i][j];}}void update(int row, int col, int val) {mat[row][col] = val;rowpresum[row][col] = (col > 0 ? rowpresum[row][col-1] : 0) + val;for(int j = col+1; j < mat[0].size(); ++j)rowpresum[row][j] = rowpresum[row][j-1] + mat[row][j];}int sumRegion(int row1, int col1, int row2, int col2) {int sum = 0;for(int i = row1; i <= row2; ++i){sum += rowpresum[i][col2] - (col1==0 ? 0 : rowpresum[i][col1-1]);}return sum;}
};

28 ms 12.2 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/474974.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实战 SQL Server 2008 数据库误删除数据的恢复 (转)

今天有个朋友很着急地打电话给我&#xff0c;他用delete语句误删除了SQL Server 2008数据库中两个表中的所有记录&#xff0c;而这个数据库之前没有任何备份。让我帮他解决一下&#xff0c;不然他要赔偿客户很多钱。 SQL Server中误删除数据的恢复本来不是件难事&#xff0c;从…

在线销售数据分析–人货场三维分析角度

文章目录一、数据来源及理解二、分析思路三、数据处理数据预处理数据清洗数据转换四、数据描述性统计五、三维分析-人用户质量分析用户类别分析DM(管理者)排名分析六、三维分析-货销售金额及销量分布情况商品退货率七、三维分析-场城市区域八、总结一、数据来源及理解 此次分析…

LeetCode 348. 判定井字棋胜负(计数)

文章目录1. 题目2. 解题1. 题目 请在 n n 的棋盘上&#xff0c;实现一个判定井字棋&#xff08;Tic-Tac-Toe&#xff09;胜负的神器&#xff0c;判断每一次玩家落子后&#xff0c;是否有胜出的玩家。 在这个井字棋游戏中&#xff0c;会有 2 名玩家&#xff0c;他们将轮流在棋…

C中几组指针

具体关于c指针说明可参考前面两篇文章。C中指针详解和C中复杂类型声明。 1、二维数组 下面就三种二维数组进行说明。 1: int **Ptr; 2: int *Ptr[ 5 ]; 3: int ( *Ptr )[ 5 ]; 以上三例都是整数的二维数组&#xff0c;都可以用形如 Ptr[ 1 ][ 1 ] 的方式访问其内容&#xff1b;…

LeetCode 694. 不同岛屿的数量(BFS/DFS+set)

文章目录1. 题目2. 解题2.1 BFS2.2 DFS1. 题目 给定一个非空01二维数组表示的网格&#xff0c;一个岛屿由四连通&#xff08;上、下、左、右四个方向&#xff09;的 1 组成&#xff0c;你可以认为网格的四周被海水包围。 请你计算这个网格中共有多少个形状不同的岛屿。 两个岛…

xcode 4.2开发 ——navigation controller 添加按钮

添加一个按钮 UIBarButtonItem *rightButton [[UIBarButtonItem alloc] initWithTitle:"Add" style:UITabBarSystemItemContacts target:self action:selector(clickSettings:)]; self.navigationItem.rightBarButtonItem rightButton; 新版本xcode不用release 添…

数据分析-书籍整理(二)

业务书籍 《数据化管理-洞悉零售及电子商务》讲解了关于零售和电商的一些知识&#xff0c;有很多实用案例。很有借鉴意义。 《游戏数据分析实战》游戏各个阶段的数据分析&#xff0c;方法&#xff0c;数据来源&#xff0c;案例等。 《增长黑客》这本书我看了两遍&#xff0c…

LeetCode 1516. Move Sub-Tree of N-Ary Tree(DFS)

文章目录1. 题目2. 解题1. 题目 Given the root of an N-ary tree of unique values, and two nodes of the tree p and q. You should move the subtree of the node p to become a direct child of node q. If p is already a direct child of q, don’t change anything. …

空气质量指数(AQI)分析与预测

文章目录前言一、背景Ⅰ数据来源Ⅱ 数据背景Ⅲ 分析目的二、数据探索性分析Ⅰ 数据类型Ⅱ 描述性统计Ⅲ 数据预处理1.缺失值处理1&#xff09;删除缺失值2&#xff09;均值/中值填充2.异常值处理3.重复值处理三、数据分析Ⅰ空气质量排名Ⅱ 全国空气质量1.全国空气质量等级统计2…

如果程序跑着跑着就崩溃了,查看内存

程序跑的时间长就发生中断。 启动任务管理器&#xff0c;选择“进程”选项卡&#xff0c;查看程序的内存。 发现程序运行的过程中内存不断增长。 那么原因可能是运行过程中不断地分配了新的内存而没有释放。 查找的方法是注释代码&#xff0c;然后看内存是不是还在增长&#xf…

LeetCode MySQL解题目录

已完成的 LeetCode MySQL 数据库题目。点击查看我的 LeetCode 算法解题目录。 已解决 123/123 - 简单 54 中等 51 困难 18 前置入门学习 MySQL 基本查询、条件查询、投影查询MySQL 排序、分页查询、聚合查询MySQL 多表查询、连接查询&#xff08;内连接、外连接&#xff09;…

Anaconda3使用过程中遇到的问题

文章目录数据可视化中文、负号显示Anaconda使用pyecharts安装方法方法一&#xff1a;pip install pyecharts安装方法二&#xff1a;清华镜像安装方法三&#xff1a;离线安装成功安装后遇到的问题成功安装却不能使用不能使用某一个图&#xff1a;bar\grid决策树sklearn.exceptio…

AliasDB:简单统一灵活的数据库访问库(支持MSSQL/MySQL/SQLite/Oracle/ODBC/OleDb)适用于中小型系统...

数据库访问各种规模的应用程序不可避免的操作&#xff0c;.NET对提供了简单方便统一的数据库访问类&#xff0c;并且通过Enterprise Lib提供了更为顶层的数据库访问库。在我的人个工作中&#xff0c;现在用得最多的就是通过“动码代码生成器”对一次性生成数据库访问接口&#…

数据分析方法--回归分析方法((SPSS建模:多元线性回归案例)

文章目录回归定义最常用回归方法一、线性回归(Linear Regression)二、逻辑回归(Logistic Regression)三、多项式回归(Polynomial Regression)四、逐步回归(Stepwise Regression)五、岭回归(Ridge Regression)六、套索回归(Lasso Regression)七、回归(ElasticNet)如何正确选择回…

LeetCode MySQL 1511. Customer Order Frequency

文章目录1. 题目2. 解题1. 题目 Table: Customers ------------------------ | Column Name | Type | ------------------------ | customer_id | int | | name | varchar | | country | varchar | ------------------------ customer_id is the p…

LeetCode MySQL 1075. 项目员工 I

文章目录1. 题目2. 解题1. 题目 项目表 Project&#xff1a; ---------------------- | Column Name | Type | ---------------------- | project_id | int | | employee_id | int | ---------------------- 主键为 (project_id, employee_id)。 employee_id 是员…

The Shapes of CSS

http://home.cnblogs.com/blog/转载于:https://www.cnblogs.com/yanyanhappy/archive/2012/09/07/2675050.html

数据分析-书籍整理(一)

入门书籍 《谁说菜鸟不会数据分析》讲解了一些常见的分析技巧&#xff0c;并附带 Excel 的一些知识以及职场可使用的基础数据分析。 《MYSQL必知必会》对于有sql基础的人来说&#xff0c;可以快速复习知识点&#xff0c;小白也能学习到很多&#xff0c;不会打击自信心。我是用…

hdu 1054 Strategic Game 最小点覆盖 = 最大二分匹配

题目地址&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1054 简单二分匹配&#xff0c;根据题意构造一个无向图。然后求最小点覆盖&#xff0c;然后扫描mark数组将曾经匹配的点所匹配的边消去。 最小点覆盖 最大二分匹配 #include<stdio.h> #include<strin…