🍀范围求和2
描述:
# 给你一个 m x n 的矩阵 M ,初始化时所有的 0 和一个操作数组 op ,其中 ops[i] = [ai, bi] 意味着当所有的 0 <= x < ai 和 0 <= y < bi 时, M[x][y] 应该加 1。
在 执行完所有操作后 ,计算并返回 矩阵中最大整数的个数 。
思考:
这个题的含义就相当于若干个矩形从(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;
}
}
测试一下!
大佬的代码:
这个方法应该就是最简单的算法了。