当前位置: 首页 > news >正文

前缀和-1314.矩阵区域和-力扣(LeetCode)

一、题目解析

1、返回的answer矩阵和mat矩阵大小一致

2、answer[i][j]的值为以(i,j)位置向外扩展k位置的矩形位置所有元素的和

二、算法原理

解法:二维前缀和

dp表计算公式

 应用公式

下标映射关系

所需的x1、y1、x2和y2的计算 

细节问题:

1、dp表和mat的下标映射关系
2、answer表和dp表的下标映射关系

三、代码示例

class Solution {
public:vector<vector<int>> matrixBlockSum(vector<vector<int>>& mat, int k){int m = mat.size(),n = mat[0].size();vector<vector<int>> dp(m+1,vector<int>(n+1,0)),ret(m,vector<int>(n));for(int i = 1;i<m+1;i++){for(int j = 1;j<n+1;j++)dp[i][j] = dp[i-1][j]+dp[i][j-1]-dp[i-1][j-1]+mat[i-1][j-1];}int x1,x2,y1,y2;for(int i = 0;i<m;i++){for(int j = 0;j<n;j++){x1 = max(0,i-k),y1 = max(0,j-k);x2 = min(m-1,i+k),y2 = min(n-1,j+k);ret[i][j] = dp[x2+1][y2+1]-dp[x1][y2+1]-dp[x2+1][y1]+dp[x1][y1];}}return ret;}
};

 

 

 

看到最后,如果对您有所帮助,还请点赞、收藏和关注,我们下期再见! 

http://www.lryc.cn/news/605911.html

相关文章:

  • 隐私灯是否“可信”?基于驱动层的摄像头指示机制探析
  • 【1】数据可视化分析方法
  • 20250731在荣品的PRO-RK3566开发板的Android13下跑通敦泰的FT8206触控芯片
  • Google政策大更新:影响金融,Ai应用,社交,新闻等所有类别App
  • 新手教程:用外部 PostgreSQL 和 Zookeeper 启动 Dolphinscheduler
  • 25.(vue3.x+vite)两个pinia如何互相调用
  • Docker 初学者需要了解的几个知识点 (七):php.ini
  • LoggerFactory(日志门面框架核心工厂类)详解
  • 【C#设计模式】深入理解常见迭代器模式(Iterator Pattern)
  • 安装 docker compose v2版 笔记250731
  • docker离线安装mysql镜像
  • 内存网格、KV存储和Redis的概念、使用场景及异同
  • 分布式锁ZK与redis
  • Redis 存在哪些问题
  • 【问题】Docker 容器内的应用(如n8n),访问不到外部主机的应用(如mysql)
  • 【单片机】【分布式】从单机到分布式:Redis如何成为架构升级的关键力量
  • react调用接口渲染数据时,这些表格里的数据是被禁选的
  • 【Unity笔记04】数据持久化
  • TypeScript 基础介绍(二)
  • 雷霆战机游戏代码
  • ubuntu22.04系统入门 linux入门 简单命令基础复习 实现以及实践
  • Flask Bootstrap 后台权限管理方案
  • diffusion原理和代码延伸笔记1——扩散桥,GOUB,UniDB
  • 功能强大编辑器
  • PDF源码解析
  • QT Word模板 + QuaZIP + LibreOffice,跨平台方案实现导出.docx文件后再转为.pdf文件
  • WebSocket配置实战:打造稳健高效的消息通信系统
  • 学C笔记——更新于0731
  • 网络攻击新态势企业级安全防御指南
  • C# 枚举器和迭代器(常见迭代器模式)