【leetcode】图片平滑器

 

/*C语言解法*/
int** imageSmoother(int** M, int MSize, int* MColSize, int* returnSize, int** returnColumnSizes){
    int row,col,sum,count;
    int** arr = (int**)calloc(MSize,sizeof(int*));
    for (row=0; row<MSize; row++)
    {
        arr[row] = (int*)calloc(*MColSize,sizeof(int));
        for (col=0; col<MColSize[row]; col++)
        {
            count=1;
            sum=M[row][col];
            if (col-1>=0) 
            {
                sum += M[row][col-1];
                count++;
            }
            if (col-1>=0 && row-1>=0)
            {
                sum += M[row-1][col-1];
                count++;
            }
            if (row-1>=0)
            {
                sum += M[row-1][col];
                count++;
            }
            if (col+1<*MColSize && row-1>=0)
            {
                sum += M[row-1][col+1];
                count++;
            }
            if (col+1<*MColSize)
            {
                sum += M[row][col+1];
                count++;
            }
            if (col+1<*MColSize && row+1<MSize)
            {
                sum += M[row+1][col+1];
                count++;
            }
            if (row+1<MSize)
            {
                sum += M[row+1][col];
                count++;
            }
            if (col-1>=0 && row+1<MSize)
            {
                sum += M[row+1][col-1];
                count++;
            }            
            arr[row][col] = sum/count;
        }
    }
    *returnColumnSizes = MColSize;
    *returnSize=MSize;
    return arr;
}

 

posted @ 2020-09-26 09:58  温暖了寂寞  阅读(174)  评论(0编辑  收藏  举报