列表

详情


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] 。

 

提示:

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: vector<int> rowAndMaximumOnes(vector<vector<int>>& mat) { } };

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]

上一题