乐趣区

leetcode讲解–832. Flipping an Image

832. Flipping an Image
Given a binary matrix A, we want to flip the image horizontally, then invert it, and return the resulting image.
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].
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].
Example 1:
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:
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:

1 <= A.length = A[0].length <= 20
0 <= A[i][j] <= 1

题目地址
这一题是再基础不过的题了,考察的算法硬要说的话还是有一个:翻转一个序列。
java 代码
class Solution {
public int[][] flipAndInvertImage(int[][] A) {
for(int i=0;i<A.length;i++){
reverseAndInvert(A[i]);
}
return A;
}

public void reverseAndInvert(int[] A){
for(int i=0;i<A.length/2;i++){
int temp = A[i];
A[i] = A[A.length-1-i];
A[A.length-1-i] = temp;
}
for(int i=0;i<A.length;i++){
if(A[i]==0){
A[i]=1;
}else{
A[i]=0;
}
}
}
}

退出移动版