假设我们有一个矩阵,我们必须找到其行和列中值最大的整数总数。
所以,如果输入像
1 | 3 | 2 |
4 | 6 | 5 |
1 | 5 | 7 |
那么输出将是2,因为6和7有效。
为了解决这个问题,我们将遵循以下步骤-
垫:=矩阵
r_maxes:=列出席子每一行的最大元素列表
c_maxes:=列出mat每一列的max元素
一个:=一个新列表
对于范围从0到行数的r-1,
v:= mat [r,c]
如果r_maxes [r]为v而c_maxes [c]为v,则
在a的末尾插入v
对于范围从0到列数的c-1,执行
返回的大小
让我们看下面的实现以更好地理解-
class Solution: def solve(self, matrix): mat = matrix trans_mat = list(zip(*matrix)) print(mat, trans_mat) r_maxes = [max(row) for row in mat] c_maxes = [max(t_row) for t_row in trans_mat] a = [] for r in range(len(mat)): for c in range(len(trans_mat)): v = mat[r][c] if (r_maxes[r], c_maxes[c]) == (v, v): a.append(v) return len(a) ob = Solution()matrix = [ [1, 3, 2], [4, 6, 5], [1, 5, 7] ] print(ob.solve(matrix))
[[1, 3, 2], [4, 6, 5], [1, 5, 7]]
输出结果
2