在 Python 中翻轉並反轉矩陣
假設我們有一個二進位制矩陣 mat。我們必須選擇矩陣中的每一行,然後反轉該行。之後,翻轉每一位元(0 變為 1,1 變為 0)。
因此,如果輸入如下所示
1 | 1 | 0 |
0 | 1 | 0 |
0 | 0 | 1 |
那麼輸出將是
1 | 0 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
為解決這個問題,我們將遵循以下步驟 −
- track:= 0
- 對於 mat 中的每一行,執行
- 反轉行
- tracker := 0
- 對於行中的每個 val,執行
- 如果 val 為 1,那麼
- mat[track, tracker] := 0
- 否則,
- mat[track, tracker] := 1
- tracker := tracker + 1
- 如果 val 為 1,那麼
- track := track + 1
- 返回 mat
我們檢視以下實現,以便更好地理解 −
示例
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]]
廣告