1. Description
Update a 2D matrix with the average number of every gird's 8 surrounding cells and itself.
2. Solution
Mock.
3. Code
int x[8]={0,0,1,1,1,-1,-1,-1};
int y[8]={1,-1,1,-1,0,1,-1,0};
vector<vector<int>> imageSmoother(vector<vector<int>>& M) {
vector<vector<int>> ans;
int n = M.size();
if(n==0) return ans;
int m = M[0].size();
for(int i=0;i<n;i++){
vector<int>v;
for(int j=0;j<m;j++){
int sum = M[i][j];
int cnt = 1;
for(int k=0;k<8;k++){
if(i+x[k]>=0&&i+x[k]<n&&j+y[k]>=0&&j+y[k]<m){
sum+=M[i+x[k]][j+y[k]];
cnt++;
}
}
v.push_back(sum/cnt);
}
ans.push_back(v);
}
return ans;
}