一、题目描述
文章来源:https://www.toymoban.com/news/detail-724034.html
二、算法思想
文章来源地址https://www.toymoban.com/news/detail-724034.html
三、代码实现
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;
}
};
到了这里,关于【1314. 矩阵区域和】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!