zoukankan      html  css  js  c++  java
  • leetcode 661. Image Smoother

    Given a 2D integer matrix M representing the gray scale of an image, you need to design a smoother to make the gray scale of each cell becomes the average gray scale (rounding down) of all the 8 surrounding cells and itself. If a cell has less than 8 surrounding cells, then use as many as you can.

    Example 1:

    Input:
    [[1,1,1],
     [1,0,1],
     [1,1,1]]
    Output:
    [[0, 0, 0],
     [0, 0, 0],
     [0, 0, 0]]
    Explanation:
    For the point (0,0), (0,2), (2,0), (2,2): floor(3/4) = floor(0.75) = 0
    For the point (0,1), (1,0), (1,2), (2,1): floor(5/6) = floor(0.83333333) = 0
    For the point (1,1): floor(8/9) = floor(0.88888889) = 0
    

    Note:

    1. The value in the given matrix is in the range of [0, 255].
    2. The length and width of the given matrix are in the range of [1, 150].
    class Solution {
    public:
        vector<vector<int>> imageSmoother(vector<vector<int>>& M) {
            int dir[8][2] = {1,0,1,1,1,-1,0,1,0,-1,-1,0,-1,1,-1,-1};
            int n = M.size();
            int m = M[n - 1].size();
            vector<vector<int> > w;
            for (int i = 0; i < n; ++i) {
                vector<int> v;
                for (int j = 0; j < m; ++j) {
                    int ans = 0;
                    ans += M[i][j];
                    int num = 1;
                    for (int k = 0; k < 8; ++k) {
                        int nx = i + dir[k][0];
                        int ny = j + dir[k][1];
                        if (nx < n && nx >= 0 && ny < m && ny >= 0) {
                            ans += M[nx][ny];
                            num++;
                        }
                    }
                    //cout << ans << endl;
                    v.push_back(ans/num);
                }
                w.push_back(v);
                //cout << endl;
            }
            return w;
        }
    };
  • 相关阅读:
    认识jeecms开源项目
    初识eclipse及配置相关
    Html5 Video的使用
    实现渐变色案例
    区域路由的注册机制
    MVC特性路由的提供机制
    再谈async与await
    同步 VS 异步
    C#多线程中的异常处理
    C#多线程基础
  • 原文地址:https://www.cnblogs.com/pk28/p/7399565.html
Copyright © 2011-2022 走看看