主題

LeetCode - 832. Flipping an Image 解題心得

Not In My Back Yard | 2021-01-23 00:00:01 | 巴幣 0 | 人氣 17

題目連結:


題目意譯:
給定一個二元矩陣 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 即是所求。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作