LeetCode598范围求和2

124 阅读1分钟

🍀范围求和2

描述:

 # 给你一个 m x n 的矩阵 M ,初始化时所有的 0 和一个操作数组 op ,其中 ops[i] = [ai, bi] 意味着当所有的 0 <= x < ai 和 0 <= y < bi 时, M[x][y] 应该加 1。
 在 执行完所有操作后 ,计算并返回 矩阵中最大整数的个数 。

image.png

思考:

这个题的含义就相当于若干个矩形从(0, 0)处开始做一个拉伸,然后求出重叠部分的面积(即最大元素个数)!

实现:

 class Solution {
     public int maxCount(int m, int n, int[][] ops) {
 ​
         // 如果是空的,那么整个矩阵都是
         if(ops.length==0) {
             return m*n;
         }
 ​
         int x = ops[0][0], y = ops[0][1];
         
         for(int i=0; i < ops.length; i++){
             x = Math.min(x,ops[i][0]);
             y = Math.min(y,ops[i][1]);
         }
         
         return x*y;
     }
 }

测试一下!

image.png

大佬的代码:

这个方法应该就是最简单的算法了。