码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode.832. Flipping an Image

时间:2019-01-06 10:45:45      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:替换   java   for   tco   ==   return   时间   flip   ret   

题目的大意为给定一个二阶矩阵,先水平逆序,然后再做0-1替换。

比如:

Input: [[1,1,0],[1,0,1],[0,0,0]]
Output: [[1,0,0],[0,1,0],[1,1,1]]

或者

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]]

有种最简单的做法也是比较慢的做法,就是暴力求解,时间复杂度O(n^2):

public int[][] flipAndInvertImage(int[][] A) {
    int[][] result = new int[A.length][A.length];
    int[] temp = new int[A.length];
    for (int i = 0; i < A.length; i++) {
        for (int j = 0; j < A[i].length; j++) {
            result[i][A[i].length - 1 - j] = A[i][j] == 0 ? 1 : 0;
        }
    }
    return result;
}

提交之后可以通过但是不推荐,查看其它大神提交的结题方案,发现有一个回答真是妙哉~

    public int[][] flipAndInvertImage(int[][] A) {
        int n = A.length;
        for (int[] row : A)
            for (int i = 0; i * 2 < n; i++)
                if (row[i] == row[n - i - 1])
                    row[i] = row[n - i - 1] ^= 1;
        return A;
    }

受教了。

希望有一天我也能变成大神,加油!

LeetCode.832. Flipping an Image

标签:替换   java   for   tco   ==   return   时间   flip   ret   

原文地址:https://www.cnblogs.com/xusong95/p/10226966.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!