Leetcode PHP题解--D113 598. Range Addition II


D113 598. Range Addition II

题目链接

598. Range Addition II

题目分析

给定一个二维数组的宽和高和一个代表操作的二维数组。
操作二维数组M[i][j]中,代表需要给二维数组的0<=i<a, 0<=j<b的每一个元素+1。

最终返回二维数组中最大值的出现的次数。

思路

其实这个题目不需要逐个去+1。而是需要去获取进行操作后被操作次数最多的范围。只需要求出该范围的宽和高进行相乘就好了。

最终代码

class Solution {

    /**
     * @param Integer $m
     * @param Integer $n
     * @param Integer[][] $ops
     * @return Integer
     */
    function maxCount($m, $n, $ops) {
        if(empty($ops)){
            return $m*$n;
        }
        $allIs = array_column($ops, 0);
        $allJs = array_column($ops, 1);

        return min($allIs) * min($allJs);
    }
}

只超过了50%。怀疑是因为用了两次array_column的原因导致需要遍历两次数组。

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


Vote Vote Cancel Collect Collect Cancel

<< 上一篇: Leetcode基础刷题之PHP解析(113. Path Sum II)

>> 下一篇: Leetcode基础刷题之PHP解析(114. Flatten Binary Tree to Linked List)