Description
Example
Note
Solution 1(C++)
class Solution {
public:
int maxCount(int m, int n, vector<vector<int>>& ops) {
int minrow=INT_MAX, mincol=INT_MAX;
minrow=min(minrow, m);
mincol=min(mincol, n);
for(int i=0; i< ops.size(); i++){
minrow=min(minrow, ops[i][0]);
mincol=min(mincol, ops[i][1]);
}
return minrow * mincol;
}
};
Solution 2(C++)
class Solution {
public:
int maxCount(int m, int n, vector<vector<int>>& ops) {
for(auto v:ops){
m=min(m, v[0]);
n=min(n, v[1]);
}
return m * n;
}
};
算法分析
算法部分其实不难。两个解法本质思路并无区别,两个代码只是程序编写部分不同。解法二改变了m与n,从而减少了minrow与mincol变量的设置。emmm,这个有好有坏吧,好处自然就是减少了变量的设置。坏处我觉得改变了变量的含义,简单的算法题可以这么做,但是复杂的工程代码中也许就不太好了。
程序分析
二维数组我这里用了两种方法遍历:
for(int i=0; i<ops.size(); i++){
ops[i][0];
ops[i][i];
}
for(auto v: ops){
v[0];
v[1];
}