【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;

    }
};
相关推荐
饕餮怪程序猿几秒前
贪心算法经典应用:活动选择问题(C++实现)
c++·算法·贪心算法
光羽隹衡8 分钟前
决策树项目——电信客户流失预测
算法·决策树·机器学习
TL滕9 分钟前
从0开始学算法——第二十一天(高级链表操作)
笔记·学习·算法
CoovallyAIHub9 分钟前
无人机低空视觉数据集全景解读:从单机感知到具身智能的跨越
深度学习·算法·计算机视觉
学编程就要猛9 分钟前
算法:1.移动零
java·算法
杜子不疼.9 分钟前
【LeetCode 35 & 69_二分查找】搜索插入位置 & x的平方根
算法·leetcode·职场和发展
YYDS31410 分钟前
次小生成树
c++·算法·深度优先·图论·lca最近公共祖先·次小生成树
xu_yule13 分钟前
算法基础(区间DP)
数据结构·c++·算法·动态规划·区间dp
天骄t14 分钟前
信号VS共享内存:进程通信谁更强?
算法
biter down16 分钟前
C++ 交换排序算法:从基础冒泡到高效快排
c++·算法·排序算法