ARTS Week 51
Algorithm 本周的算法题为 598. 区间加法 II 给你一个 m x n 的矩阵 M 和一个操作数组 op 。矩阵初始化时所有的单元格都为 0 。ops[i] = [ai, bi] 意味着当所有的 0 <= x < ai 和 0 <= y < bi 时, M[x][y] 应该加 1。 在 执行完所有操作后 ,计算并返回 矩阵中最大整数的个数 。 示例 1: 输入: m = 3, n = 3,ops = [[2,2],[3,3]] 输出: 4 解释: M 中最大的整数是 2, 而且 M 中有4个值为2的元素。因此返回 4。 实现代码如下: const maxCount = function(m, n, ops) { // 如果操作组为空,则表示都是0,直接返回m*n if (ops.length === 0) { return m * n; } // 找到最小的m和n let minM = m; let minN = n; for (let i = 0; i < ops.length; i++) { minM = Math.min(minM,ops[i][0]) minN = Math.min(minN,ops[i][1]) } // 返回最小的m和n的个数相乘 return minM * minN; }; 解题思路: 这道题其实还是很简单的,只是一开始会有点绕,不太清楚要讲什么,但是仔细观察就会发现,突破点就是这个 “矩阵中最大整数的个数”。因为所有的格子都要 + 1,所以,最大的整数只会出现在操作组a1、b1值最小的那个上面。所以,我们要做的工作,就是找出最小值的那个操作组。 Review Carlo Ancelotti leaves Real Madrid to coach Brazil - Breaking News English Lesson ...