题目描述:
思路:对于每一个点来说,都有本身,上、下、左、右、左上、右上、左下、左下,利用暴力法,依次判断相加
代码如下:
class Solution {
public:
vector<vector<int>> imageSmoother(vector<vector<int>>& M) {
vector<vector<int>>num=M;
int i,j,row,col,m,n;
row=M.size();
col=M[0].size();
for(i=0;i<row;i++){
for(j=0;j<col;j++){
m=1;
if(M[i][j]!=0){
n=M[i][j];//中间
}
else{
n=0;
}
if(i>0){
m+=1;
n+=M[i-1][j];//上
}
if(i<row-1){
m+=1;
n+=M[i+1][j];//下
}
if(j>0){
m+=1;
n+=M[i][j-1];//左
}
if(j<col-1){
m+=1;
n+=M[i][j+1];//右
}
if(i>0&&j>0){
m+=1;
n+=M[i-1][j-1];//左上
}
if(i>0&&j<col-1){
m+=1;
n+=M[i-1][j+1];//右上
}
if(j>0&&i<row-1){
m+=1;
n+=M[i+1][j-1];//左下
}
if(i<row-1&&j<col-1){
m+=1;
n+=M[i+1][j+1];//右下
}
num[i][j]=n/m;
}
}
return num;
}
};