class Solution {
public:
vector<int> rowAndMaximumOnes(vector<vector<int>>& mat) {
}
};
6376. 一最多的行
给你一个大小为 m x n
的二进制矩阵 mat
,请你找出包含最多 1 的行的下标(从 0 开始)以及这一行中 1 的数目。
如果有多行包含最多的 1 ,只需要选择 行下标最小 的那一行。
返回一个由行下标和该行中 1 的数量组成的数组。
示例 1:
输入:mat = [[0,1],[1,0]] 输出:[0,1] 解释:两行中 1 的数量相同。所以返回下标最小的行,下标为 0 。该行 1 的数量为 1 。所以,答案为 [0,1] 。
示例 2:
输入:mat = [[0,0,0],[0,1,1]] 输出:[1,2] 解释:下标为 1 的行中 1 的数量最多。
该行 1 的数量为 2 。所以,答案为
[1,2] 。
示例 3:
输入:mat = [[0,0],[1,1],[0,0]]
输出:[1,2]
解释:下标为 1 的行中 1 的数量最多。该行 1 的数量为 2 。所以,答案为
[1,2] 。
提示:
m == mat.length
n == mat[i].length
1 <= m, n <= 100
mat[i][j]
为 0
或 1
原站题解
golang 解法, 执行用时: 124 ms, 内存消耗: 7.1 MB, 提交时间: 2023-04-17 16:34:51
func rowAndMaximumOnes(mat [][]int) []int { maxSum, idx := -1, 0 for i, row := range mat { sum := 0 for _, x := range row { sum += x } if sum > maxSum { maxSum, idx = sum, i } } return []int{idx, maxSum} }
python3 解法, 执行用时: 60 ms, 内存消耗: 15.5 MB, 提交时间: 2023-04-17 16:34:35
class Solution: def rowAndMaximumOnes(self, mat: List[List[int]]) -> List[int]: max_sum, idx = -1, 0 for i, row in enumerate(mat): s = sum(row) if s > max_sum: max_sum, idx = s, i return [idx, max_sum]
python3 解法, 执行用时: 64 ms, 内存消耗: 15.5 MB, 提交时间: 2023-04-17 16:34:21
class Solution: def rowAndMaximumOnes(self, mat: List[List[int]]) -> List[int]: m = len(mat) ans = 0 t = 0 for i in range(m): if mat[i].count(1) > t: t = mat[i].count(1) ans = i return [ans, t]