使用的是C++,为什么指针会超出范围呢?参考的是这里
他的答案可以过
class Solution {
public:
vector<vector<int>> imageSmoother(vector<vector<int>>& M) {
if (M.empty() || M[0].empty()) return {};
int m = M.size(),n = M[0].size();
vector<vector<int>> res,dirs = {{1,0},{1,-1},{0,-1},{-1,-1},{-1,0},{-1,1},{0,1},{1,1}};
for(int i = 0; i < m; ++i)
for(int j = 0; j < n; ++j){
int m = M[i][j],cnt = 1;
for(auto dir:dirs){
int i_plus = i + dir[0], j_plus = j + dir[1];
if(i_plus < 0 || i_plus >= m || j_plus < 0 || j_plus >= n) continue;
m += M[i_plus][j_plus];
++cnt;
}
res[i][j] = m / cnt;
}
return res;
}
};