832. Flipping an Image
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]]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]]解题要点:
class Solution {
public int[][] flipAndInvertImage(int[][] A) {
int n = A.length;
for(int k = 0; k < n; k++){
int i = 0, j = A.length - 1;
while(i < j){
flip(A[k], i, j);
A[k][i] = 1 - A[k][i];
A[k][j] = 1 - A[k][j];
i++;
j--;
}
if (i == j) A[k][i] = 1 - A[k][j];
}
return A;
}
public void flip(int[] a, int i, int j){
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}Last updated