Flipping an Image (E)
題目
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 <= 200 <= A[i][j] <= 1
題意
將矩陣中每一行逆序,并將矩陣中的1和0互換,
思路
直接遍歷處理即可,
代碼實作
Java
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;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/209900.html
標籤:其他
