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;
            }
        }
    }
}

liuqinh2s
42 声望13 粉丝

认真写代码,搞创作