leetcode算法题--二维区域和检索 - 矩阵不可变
原题链接:https://leetcode-cn.com/problems/range-sum-query-2d-immutable/
1、暴力(超时)
class NumMatrix {public:vector<vector<int>> matrix;NumMatrix(vector<vector<int>>& matrix) {this->matrix=matrix;}int sumRegion(int row1, int col1, int row2, int col2) {int sum=0;for(int i=row1;i<=row2;i++){for(int j=col1;j<=col2;j++){sum+=matrix[i][j];}}return sum;}
};
2、动态规划+记忆化(通过)
dp[i][j]表示以(i,j)为右下角的正方形里元素总和
于是转移方程为:
sum(abcd)=sum(od)−sum(ob)−sum(oc)+sum(oa)
代码:
vector<vector<int>> dp;NumMatrix(vector<vector<int>>& matrix) {if(matrix.empty()) return;int m=matrix.size();int n=matrix[0].size();this->dp.resize(m+1,vector<int>(n+1,0));for(int i=1;i<m+1;i++){for(int j=1;j<n+1;j++){this->dp[i][j]=matrix[i-1][j-1]+dp[i-1][j]+dp[i][j-1]-dp[i-1][j-1];}}}int sumRegion(int row1, int col1, int row2, int col2) {return dp[row2+1][col2+1]-dp[row1][col2+1]-dp[row2+1][col1]+dp[row1][col1];}
leetcode算法题--二维区域和检索 - 矩阵不可变相关推荐
- 力扣刷题笔记--304 二维区域和检索 - 矩阵不可变 前缀和
304 二维区域和检索 - 矩阵不可变 作者:AC_OIer 链接:https://leetcode-cn.com/problems/range-sum-query-2d-immutable/solu ...
- 【二维前缀和】304. 二维区域和检索 - 矩阵不可变
目录 题目 前缀和解法(二维) 二维vector 定义 这道题是「303. 区域和检索 - 数组不可变」的进阶,第 303 题是在一维数组中做区域和检索,这道题是在二维矩阵中做区域和检索. 题目 30 ...
- [力扣] 304. 二维区域和检索 - 矩阵不可变
[力扣] 304. 二维区域和检索 - 矩阵不可变 给定一个二维矩阵,计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2). 动态规划 求子 ...
- 304. 二维区域和检索 - 矩阵不可变
链接:304. 二维区域和检索 - 矩阵不可变 题解:https://leetcode-cn.com/problems/range-sum-query-2d-immutable/solution/er ...
- LeetCode 304. 二维区域和检索 - 矩阵不可变(DP)
1. 题目 2. 解题 类似题目:LeetCode 308. 二维区域和检索 - 可变(前缀和) dp[i][j]数组表示 从左上角到i,j位置的所有和 sum[i+1][j+1]=sum[i+1][ ...
- leetcode 304. Range Sum Query 2D - Immutable |304. 二维区域和检索 - 矩阵不可变(二维前缀和问题)
题目 https://leetcode.com/problems/range-sum-query-2d-immutable/ 题解 本题是 medium 难度,二维前缀和问题.相似题目有: Easy: ...
- leetcode 304. 二维区域和检索 - 矩阵不可变(前缀和)
给定一个二维矩阵,计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2) . 上图子矩阵左上角 (row1, col1) = (2, 1) , ...
- LeetCode 304. 二维区域和检索 - 矩阵不可变(动态规划)
题目描述 给定一个二维矩阵,计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2). 上图子矩阵左上角 (row1, col1) = (2, ...
- leetcode304. 二维区域和检索 - 矩阵不可变
给定一个二维矩阵,计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2). 上图子矩阵左上角 (row1, col1) = (2, 1) ,右 ...
最新文章
- 自动化测试测试工具 AirTest 的使用方法与简介
- Android开发基本概念
- yield(C# 参考)
- c语言函数调用参数调用的太少,浅谈C语言函数调用参数压栈的相关问题
- Linux/Centos下安装部署phantomjs 及使用
- 微软发布首个 Chromium Edge stable 预览版
- DisplayTag1.2
- 伺服电机负载惯量比的合理取值
- PTX ISA 7.4 参考手册翻译
- Duplicate class com.xxx.xxx found in modules
- 超实用的自我规划模型 | 进击
- windows加载wim文件
- 戴尔台式机装linux系统,在戴尔(Dell)台式机上安装深度Deepin系统的BIOS设置方法...
- Spyder学习笔记1-Jack Xu
- 【计算机毕业设计】267防疫信息登记系统设计与实现
- php38.xyz,GitHub - xyz9836/WeChatDeveloper: 【新】微信服务号+微信小程序+微信支付+支付宝支付...
- Java中的this关键字
- 字库点阵数据的竖置横排和横置横排区别
- 车企数字化转型中的核心技术应用
- OpenFlow——抓包packet_in和packet_out消息
热门文章
- python 文字语音朗读-教你用 Python 来朗读网页
- 自己的电脑上怎么用python-如何做一个任何电脑都能用的python程序?
- python流程控制语句-Python中流程控制语句的详细介绍
- python是不是特别垃圾-谈谈python垃圾回收机制
- python语法大全-python语法大全,python语法手册
- python趣味编程10例-Python趣味编程与精彩实例,码高少儿编程 编
- anaconda怎么运行python程序-致Python初学者 Anaconda入门使用指南完整版
- linux设置用户密码、查看linux用户信息、root用户管理普通用户(passwd命令使用)
- redis中的quicklist
- HashMap、TreeMap、Hashable和LinkedHashMap