2643. 一最多的行
题目描述 简单
信息
题目来源:LeetCode官网题目
给你一个大小为 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
解 题
模拟即可
- TypeScript
- JavaScript
- Python3
function rowAndMaximumOnes(mat: number[][]): number[] {
let max = 0;
let pos = 0;
for (let i = 0; i < mat.length; i++) {
let sum = mat[i].reduce((pre, cur) => pre + cur, 0);
if (sum > max) {
max = sum;
pos = i;
}
}
return [pos, max];
};
/**
* @param {number[][]} mat
* @return {number[]}
*/
var rowAndMaximumOnes = function(mat) {
let max = 0;
let pos = 0;
for (let i = 0; i < mat.length; i++) {
let sum = mat[i].reduce((pre, cur) => pre + cur, 0);
if (sum > max) {
max = sum;
pos = i;
}
}
return [pos, max];
};
class Solution:
def rowAndMaximumOnes(self, mat: List[List[int]]) -> List[int]:
pos, max = 0, 0
for i, row in enumerate(mat):
s = sum(row)
if s > max:
max, pos = s, i
return [pos, max]