假设我们有一个二进制矩阵矩阵。我们必须选择矩阵中的每一行,然后反转该行。之后,翻转每个位(0至1和1至0)。
所以,如果输入像
1 | 1 | 0 |
0 | 1 | 0 |
0 | 0 | 1 |
那么输出将是
1 | 0 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
为了解决这个问题,我们将遵循以下步骤-
曲目:= 0
对于垫子中的每一行,
如果val为1,则
除此以外,
追踪器:=追踪器+ 1
mat [track,tracker]:= 0
mat [track,tracker]:= 1
反转行
追踪器:= 0
对于行中的每个val,执行
轨迹:=轨迹+ 1
返回垫
让我们看下面的实现以更好地理解-
class Solution: def solve(self, mat): track=0 for row in mat: row.reverse() tracker = 0 for val in row: if val == 1: mat[track][tracker] = 0 else: mat[track][tracker] = 1 tracker += 1 track += 1 return mat ob = Solution()mat = [[1,1,0],[0,1,0],[0,0,1]] print(ob.solve(mat))
[[1,1,0],[0,1,0],[0,0,1]]
输出结果
[[1, 0, 0], [1, 0, 1], [0, 1, 1]]