題目連結:
題目意譯:
給定一個二元矩陣 A ,我們想要水平地翻轉 A ,然後反轉 A ,最後回傳最後結果。
水平翻轉意為 A 的每列皆被倒序地翻轉。例如,水平翻轉 [1, 1, 0] 會得到 [0, 1, 1]。
反轉 A 代表著每個 0 替換 1 且每個 1 替換為 0。例如,反轉 [0, 1, 1] 會得到 [1, 0, 0]。
注:
1 ≦ A.length = A[0].length ≦ 20
0 ≦ A[i][j] ≦ 1
範例測資:
範例 1:
輸入: [[1,1,0],[1,0,1],[0,0,0]]
輸出: [[1,0,0],[0,1,0],[1,1,1]]
解釋: 首先翻轉每列:[[0,1,1],[1,0,1],[0,0,0]];接著反轉:[[1,0,0],[0,1,0],[1,1,1]]
範例 2:
輸入: [[1,1,0,0],[1,0,0,1],[0,1,1,1],[1,0,1,0]]
輸出: [[1,1,0,0],[0,1,1,0],[0,0,0,1],[1,0,1,0]]
解釋: 首先翻轉每列:[[0,0,1,1],[1,0,0,1],[1,1,1,0],[0,1,0,1]];接著反轉:[[1,1,0,0],[0,1,1,0],[0,0,0,1],[1,0,1,0]]
解題思維:
模擬即可。
接著再掃一次(這邊的動作可以與上面一起做),將每個遇到的 0 變成 1 、 1 變成 0 即可。
最後回傳修改後的 A 即是所求。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。