【1314. 矩阵区域和】

目录

一、题目描述

二、算法思想

三、代码实现

cpp 复制代码
class Solution {
public:
    vector<vector<int>> matrixBlockSum(vector<vector<int>>& mat, int k) 
    {

        //先预处理数组
        int n=mat.size();//行
        int m=mat[0].size();//列
        vector<vector<int>> ret(n,vector<int>(m));
        
        vector<vector<int>> dp(n+1,vector<int>(m+1));

        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=m;j++)
            {
                dp[i][j]=dp[i-1][j]+dp[i][j-1]+mat[i-1][j-1]-dp[i-1][j-1];
            }
        }

        for(int i=0;i<n;i++)
        {
            for(int j=0;j<m;j++)
            {
                int x1=max(0,i-k)+1,y1=max(0,j-k)+1;
                int x2=min(n-1,i+k)+1,y2=min(m-1,j+k)+1;
                ret[i][j]=dp[x2][y2]-dp[x2][y1-1]-dp[x1-1][y2]+dp[x1-1][y1-1];
            }
        }
        return ret;

    }
};
相关推荐
不能只会打代码2 分钟前
力扣--3578. 统计极差最大为 K 的分割方式数(Java实现,代码注释及题目分析讲解)
算法·leetcode·动态规划·滑动窗口
小尧嵌入式4 分钟前
QT软件开发知识流程及秒表计时器开发
开发语言·c++·qt·算法
踢球的打工仔18 分钟前
前端html(3)
前端·算法·html
程序员-King.18 分钟前
day114—同向双指针(数组)—统计得分小于K的子数组数目(LeetCode-2302)
算法·leetcode·双指针
智算菩萨20 分钟前
深度学习在教育数据挖掘(EDM)中的方法体系:从任务建模到算法范式的理论梳理与总结
深度学习·算法·数据挖掘
_OP_CHEN24 分钟前
【算法基础篇】(二十七)从记忆化搜索到动态规划:保姆级入门指南,带你吃透 DP 核心思想!
算法·蓝桥杯·动态规划·记忆化搜索·算法竞赛·acm/icpc
是Dream呀24 分钟前
后端开发入门超完整速成路线(算法篇)
算法
代码雕刻家24 分钟前
1.10.课设实验-数据结构-查找-机票查询
c语言·数据结构·算法
biyezuopinvip31 分钟前
音频DSP技术与应用数字信号处理算法实验(论文)
算法·音视频·信号处理·代码·音频dsp技术·应用数字信号·处理算法实验
小妖66636 分钟前
力扣(LeetCode)- 60. 排列序列
算法·leetcode·职场和发展