给定二进制矩阵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; }