当前位置: 首页 > 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.dtcms.com/a/307628.html

相关文章:

  • 《汇编语言:基于X86处理器》第10章 编程练习
  • SFT最佳实践教程 —— 基于方舟直接进行模型精调
  • stm32中优先使用原子操作的具体实现方式
  • leecode611 有效三角形的个数
  • 基于N32G45x+RTT驱动框架的定时器外部计数
  • WebMvcConfigurer配置接口详解
  • ClickHouse vs PostgreSQL:数据分析领域的王者之争,谁更胜一筹?
  • 模型优化——在MacOS 上使用 Python 脚本批量大幅度精简 GLB 模型(通过 Blender 处理)
  • 【linux驱动开发】Vscode + Remote SSH + clangd + bear=内核源码阅读环境搭建
  • Visual Studio Code (VSCode) 的常用快捷键
  • 33.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--财务服务--记账
  • Shader开发(五)什么是渲染管线
  • 【大模型理论篇】混合思考之自适应思维链
  • day28_2025-07-31
  • 基于京东评论的文本挖掘与分析,使用LSTM情感分析算法以及网络语义分析
  • 【数据结构】算法代码
  • 前端框架Vue3(三)——路由和pinia
  • 分布内侧内嗅皮层的层Ⅱ或层Ⅲ的网格细胞(grid cells)对NLP中的深层语义分析的积极影响和启示
  • vue3.0 +TypeScript 项目中pinia基础语法和使用
  • 【大数据】open_metadata 开源元数据管理平台建设与数据血缘实践
  • 「源力觉醒 创作者计划」开源大模型重构数智文明新范式
  • AI任务相关解决方案12-NLP的15项任务大融合系统:传统NLP与Qwen大模型的深度结合
  • NTLDR源代码分析之从GetSector函数到blread函数
  • 解决 IntelliJ IDEA Build时 Lombok 不生效问题
  • 商旅平台怎么选?如何规避商旅流程中的违规风险?
  • 【未解决】STM32无刷电机驱动电路问题记录
  • .NET Core部署服务器
  • 智慧收银系统开发进销存库存统计,便利店、水果店、建材与家居行业的库存汇总管理—仙盟创梦IDE
  • Spring Boot 异常处理:从全局捕获到优化用户体验!
  • PostgreSQL面试题及详细答案120道(01-20)