Given a binary matrix A
, we want to flip the image horizontally, then invert it, and return the resulting image.java
To flip an image horizontally means that each row of the image is reversed. For example, flipping [1, 1, 0]
horizontally results in [0, 1, 1]
.code
To invert an image means that each 0
is replaced by 1
, and each 1
is replaced by 0
. For example, inverting [0, 1, 1]
results in [1, 0, 0]
.ip
Example 1:it
Input: [[1,1,0],[1,0,1],[0,0,0]] Output: [[1,0,0],[0,1,0],[1,1,1]] Explanation: First reverse each row: [[0,1,1],[1,0,1],[0,0,0]]. Then, invert the image: [[1,0,0],[0,1,0],[1,1,1]]
Example 2:io
Input: [[1,1,0,0],[1,0,0,1],[0,1,1,1],[1,0,1,0]] Output: [[1,1,0,0],[0,1,1,0],[0,0,0,1],[1,0,1,0]] Explanation: First reverse each row: [[0,0,1,1],[1,0,0,1],[1,1,1,0],[0,1,0,1]]. Then invert the image: [[1,1,0,0],[0,1,1,0],[0,0,0,1],[1,0,1,0]]
Notes:class
1 <= A.length = A[0].length <= 20
0 <= A[i][j] <= 1
將矩陣中每一行逆序,並將矩陣中的1和0互換。sed
直接遍歷處理便可。遍歷
class Solution { public int[][] flipAndInvertImage(int[][] A) { for (int[] arr : A) { int i = 0, j = arr.length - 1; while (i < j) { if (arr[i] == arr[j]) { arr[i] = 1 - arr[i]; arr[j] = 1 - arr[j]; } i++; j--; } if (i == j) { arr[i] = 1 - arr[i]; } } return A; } }