LeetCode之0661, 二维向量初始化
img[i][j]周围的单元格,img[i+i1][j+j1], i1=-1,0,1, j1=-1,0,1, 每个都判断一次。O(9*m*n)
class Solution { public: std::vector<std::vector<int>> imageSmoother( std::vector<std::vector<int>>& img) { int m = img.size(); int n = img[0].size(); std::vector<std::vector<int>> ret(m, std::vector<int>(n, 0)); int count, s; for (int i = 0; i < m; ++i) { for (int j = 0; j < n; ++j) { s = 0; count = 0; for (int i1 = -1; i1 < 2; ++i1) { for (int j1 = -1; j1 < 2; ++j1) { if (i + i1 >= 0 && i + i1 < m && j + j1 >= 0 && j + j1 < n) { ++count; s += img[i + i1][j + j1]; } } } ret[i][j] = s / count; //std::cout << "img[" << i << "][" << j << "]=" << ret[i][j] << std::endl; } } return ret; } };
本文来自博客园,作者:安然春夏,转载请注明原文链接:https://www.cnblogs.com/weixicai/p/17567185.html。测试只能证明程序有错误,而不能证明程序没有错误。你必须非常努力,才能看起来毫不费力。