原题链接: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算法题--二维区域和检索 - 矩阵不可变相关推荐

  1. 力扣刷题笔记--304 二维区域和检索 - 矩阵不可变 前缀和

    304 二维区域和检索 - 矩阵不可变 作者:AC_OIer 链接:https://leetcode-cn.com/problems/range-sum-query-2d-immutable/solu ...

  2. 【二维前缀和】304. 二维区域和检索 - 矩阵不可变

    目录 题目 前缀和解法(二维) 二维vector 定义 这道题是「303. 区域和检索 - 数组不可变」的进阶,第 303 题是在一维数组中做区域和检索,这道题是在二维矩阵中做区域和检索. 题目 30 ...

  3. [力扣] 304. 二维区域和检索 - 矩阵不可变

    [力扣] 304. 二维区域和检索 - 矩阵不可变 给定一个二维矩阵,计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2). 动态规划 求子 ...

  4. 304. 二维区域和检索 - 矩阵不可变

    链接:304. 二维区域和检索 - 矩阵不可变 题解:https://leetcode-cn.com/problems/range-sum-query-2d-immutable/solution/er ...

  5. LeetCode 304. 二维区域和检索 - 矩阵不可变(DP)

    1. 题目 2. 解题 类似题目:LeetCode 308. 二维区域和检索 - 可变(前缀和) dp[i][j]数组表示 从左上角到i,j位置的所有和 sum[i+1][j+1]=sum[i+1][ ...

  6. leetcode 304. Range Sum Query 2D - Immutable |304. 二维区域和检索 - 矩阵不可变(二维前缀和问题)

    题目 https://leetcode.com/problems/range-sum-query-2d-immutable/ 题解 本题是 medium 难度,二维前缀和问题.相似题目有: Easy: ...

  7. leetcode 304. 二维区域和检索 - 矩阵不可变(前缀和)

    给定一个二维矩阵,计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2) . 上图子矩阵左上角 (row1, col1) = (2, 1) , ...

  8. LeetCode 304. 二维区域和检索 - 矩阵不可变(动态规划)

    题目描述 给定一个二维矩阵,计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2). 上图子矩阵左上角 (row1, col1) = (2, ...

  9. leetcode304. 二维区域和检索 - 矩阵不可变

    给定一个二维矩阵,计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2). 上图子矩阵左上角 (row1, col1) = (2, 1) ,右 ...

最新文章

  1. 自动化测试测试工具 AirTest 的使用方法与简介
  2. Android开发基本概念
  3. yield(C# 参考)
  4. c语言函数调用参数调用的太少,浅谈C语言函数调用参数压栈的相关问题
  5. Linux/Centos下安装部署phantomjs 及使用
  6. 微软发布首个 Chromium Edge stable 预览版
  7. DisplayTag1.2
  8. 伺服电机负载惯量比的合理取值
  9. PTX ISA 7.4 参考手册翻译
  10. Duplicate class com.xxx.xxx found in modules
  11. 超实用的自我规划模型 | 进击
  12. windows加载wim文件
  13. 戴尔台式机装linux系统,在戴尔(Dell)台式机上安装深度Deepin系统的BIOS设置方法...
  14. Spyder学习笔记1-Jack Xu
  15. 【计算机毕业设计】267防疫信息登记系统设计与实现
  16. php38.xyz,GitHub - xyz9836/WeChatDeveloper: 【新】微信服务号+微信小程序+微信支付+支付宝支付...
  17. Java中的this关键字
  18. 字库点阵数据的竖置横排和横置横排区别
  19. 车企数字化转型中的核心技术应用
  20. OpenFlow——抓包packet_in和packet_out消息

热门文章

  1. python 文字语音朗读-教你用 Python 来朗读网页
  2. 自己的电脑上怎么用python-如何做一个任何电脑都能用的python程序?
  3. python流程控制语句-Python中流程控制语句的详细介绍
  4. python是不是特别垃圾-谈谈python垃圾回收机制
  5. python语法大全-python语法大全,python语法手册
  6. python趣味编程10例-Python趣味编程与精彩实例,码高少儿编程 编
  7. anaconda怎么运行python程序-致Python初学者 Anaconda入门使用指南完整版
  8. linux设置用户密码、查看linux用户信息、root用户管理普通用户(passwd命令使用)
  9. redis中的quicklist
  10. HashMap、TreeMap、Hashable和LinkedHashMap