661 leetcode 图片平滑器

题目描述:
在这里插入图片描述
在这里插入图片描述
思路:对于每一个点来说,都有本身,上、下、左、右、左上、右上、左下、左下,利用暴力法,依次判断相加

代码如下:

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;  
    }
};
发布了123 篇原创文章 · 获赞 0 · 访问量 971

猜你喜欢

转载自blog.csdn.net/peachzy/article/details/104172880
今日推荐