832-翻转图像

给定二进制矩阵A,我们想要水平翻转图像,然后反转它,并返回结果图像。 水平翻转图像意味着图像的每一行都是相反的。例如,[1, 1, 0] 水平翻转会  导致  [0, 1, 1]。 反转图像意味着每个

图像都0被替换1,并且每个图像都1被替换0。例如,反转  [0, 1, 1] 结果  [1, 0, 0]。

例1: 输入: [[1,1,0],[1,0,1],[0,0,0]]  输出: [[1,0,0],[0,1,0],[1,1 ,1]]   说明:首先反转每一行:[[0,1,1],[1,0,1],[0,0,0]]。 然后,反转图像:[[1,0,0],[0,1,0],[1,1,1]]

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

 

解法1:f最外层for循环作为行数,先进行水平翻转,在进行翻反转
  public int[][] flipAndInvertImage(int[][] A) {

            int m=A.length;
            for (int i=0;i<m;i++)
            {
                for (int j=0;j<m/2;j++)
                {
                    int temp=A[i][j];
                    A[i][j]=A[i][m-1-j];
                    A[i][m-1-j]=temp;
                }
                for (int k=0;k<m;k++)
                {
                    if (A[i][k]==0)
                    {
                        A[i][k]=1;
                    }else {
                        A[i][k]=0;
                    }
                }
            }
            return A;

        }

 

posted @ 2019-04-16 21:39  Dloading  阅读(148)  评论(0)    收藏  举报