image.png
    我们可以不使用额外的(非常数)空间来完成翻转和反转操作。对于 A[i][j],我们将它和 A[i][c - j - 1] 进行交换(即翻转),其中 c 是数组 A 的列数。在交换的同时,我们可以将这两个数进行反转。

    1. public int[][] flipAndInvertImage(int[][] A) {
    2. int C = A[0].length;
    3. for(int[] row:A){
    4. for(int i=0;i<(C+1)/2;i++){
    5. int tmp = row[i]^1;
    6. row[i] = row[C-i-1]^1;
    7. row[C-i-1] = tmp;
    8. }
    9. }
    10. return A;
    11. }