美文网首页Leetcode题解-PHP版
Leetcode PHP题解--D123 661. Image

Leetcode PHP题解--D123 661. Image

作者: skys215 | 来源:发表于2020-09-24 15:22 被阅读0次

    D123 661. Image Smoother

    题目链接

    661. Image Smoother

    题目分析

    给定一个二维数组,每一项需要是其周围值的平均值向下取整。

    思路

    我的做法比较直接,获取周围的值,计算周围元素的个数及其值,取得平均值,填充进新数组就好了。

    最终代码

    <?php
    class Solution {
    
        /**
         * @param Integer[][] $M
         * @return Integer[][]  
         */
        function imageSmoother($M) {
            $N = $M;
            foreach($N as $row => $v){
                foreach($v as $col => $v1){
                    //upRow
                    $suroundedValues = [
                        isset($M[$row-1][$col-1]) ? $M[$row-1][$col-1] : null,
                        isset($M[$row-1][$col  ]) ? $M[$row-1][$col  ] : null,
                        isset($M[$row-1][$col+1]) ? $M[$row-1][$col+1] : null,
                        
                        isset($M[$row  ][$col-1]) ? $M[$row  ][$col-1] : null,
    
                        isset($M[$row  ][$col+1]) ? $M[$row  ][$col+1] : null,
                        
                        isset($M[$row+1][$col-1]) ? $M[$row+1][$col-1] : null,
                        isset($M[$row+1][$col  ]) ? $M[$row+1][$col  ] : null,
                        isset($M[$row+1][$col+1]) ? $M[$row+1][$col+1] : null,
                    ];
                    
                    $filteredValues = array_filter($suroundedValues, function($values){
                        return !is_null($values);
                    });
                    $filteredValues[] = $v1;
                    $N[$row][$col] = floor(array_sum($filteredValues)/count($filteredValues));
                }
            }
            return $N;
        }
    }
    

    若觉得本文章对你有用,欢迎用爱发电资助。

    相关文章

      网友评论

        本文标题:Leetcode PHP题解--D123 661. Image

        本文链接:https://www.haomeiwen.com/subject/rkazyktx.html