一、题目
Given a m x n binary matrix mat, find the 0-indexed position of the row that contains the maximum count of ones, and the number of ones in that row.
In case there are multiple rows that have the maximum count of ones, the row with the smallest row number should be selected.
Return an array containing the index of the row, and the number of ones in it.
Example 1:
Input: mat = [[0,1],[1,0]]
Output: [0,1]
Explanation: Both rows have the same number of 1’s. So we return the index of the smaller row, 0, and the maximum count of ones (1). So, the answer is [0,1].
Example 2:
Input: mat = [[0,0,0],[0,1,1]]
Output: [1,2]
Explanation: The row indexed 1 has the maximum count of ones (2). So we return its index, 1, and the count. So, the answer is [1,2].
Example 3:
Input: mat = [[0,0],[1,1],[0,0]]
Output: [1,2]
Explanation: The row indexed 1 has the maximum count of ones (2). So the answer is [1,2].
Constraints:
m == mat.length
n == mat[i].length
1 <= m, n <= 100
mat[i][j] is either 0 or 1.
二、题解
class Solution {
public:
vector<int> rowAndMaximumOnes(vector<vector<int>>& mat) {
int m = mat.size(),n = mat[0].size();
vector<int> cnt(m,0);
for(int i = 0;i < m;i++){
for(int j = 0;j < n;j++){
if(mat[i][j] == 1) cnt[i]++;
}
}
int maxVal = *max_element(cnt.begin(),cnt.end());
int index = 0;
for(int i = 0;i < m;i++){
if(cnt[i] == maxVal){
index = i;
break;
}
}
return {index,maxVal};
}
};
该编程问题要求在给定的二进制矩阵中找到行数最少但包含最多1的行的索引和1的数量。Solution类提供了方法,通过遍历矩阵计算每行1的数量并找出满足条件的行。
945

被折叠的 条评论
为什么被折叠?



