leetcode刷題記錄 easy(5) 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

中文題目解釋:

解析:

先將每行的值水平翻轉,然後將0替換爲1,1替換爲0;(明白異或符號^相同返回0,不同返回1的特點,可以與1進行異或完成替換)

提交結果:

class Solution {
    public int[][] flipAndInvertImage(int[][] A) {
        for (int i=0;i<A.length;i++) {
            int[] b=new int[A[i].length];
            for(int j=0;j<A[i].length;j++){
                b[j]=A[i][A[i].length-j-1]^1;
            }
            A[i]=b;
        }
        return A;
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章