资讯专栏INFORMATION COLUMN

LeetcodeT832 记录

chavesgu / 365人阅读

LeetCode T832,Flipping an Image

给定一个二阶矩阵,先做水平逆序,然后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]]

我在做的时候首先想到了暴力求解,两层循环,时间复杂度为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;
    }

膜拜,希望有一天我也能成为大神,加油。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/72833.html

相关文章

  • Composer的Autoload源码实现——启动与初始化

    摘要:任务是加载类的初始化顶级命名空间与文件路径映射初始化和注册。在实际情况下可能会出现这样的情况。值得注意的是这个函数返回的是一个匿名函数,为什么呢原因就是类中的等等都是的。。。关于匿名函数的绑定功能。 前言 在开始之前,欢迎关注我自己的博客:www.leoyang90.cn 上一篇文章,我们讨论了 PHP 的自动加载原理、PHP 的命名空间、PHP 的 PSR0 与 PSR4 标准,有...

    MarvinZhang 评论0 收藏0
  • Leetcode PHP题解--D8 832. Flipping an Image

    摘要:题目链接题目分析题目要求把一个只有和的二维数组中的和取反变为和。输入是一个二维数组,那么我们需要先降为一维。接下来需要完成替换。因为他是先完成第一个替换对,再重新遍历字符串替换第二个替换对的。这样就完成了每一行的处理。 832. Flipping an Image 题目链接 832. Flipping an Image 题目分析 题目要求把一个只有0和1的二维数组中的0和1取反变为1和...

    hellowoody 评论0 收藏0
  • Composer的Autoload源码实现——注册与运行

    前言 在开始之前,欢迎关注我自己的博客:www.leoyang90.cn上一篇 文章我们讲到了 Composer 自动加载功能的启动与初始化,经过启动与初始化,自动加载核心类对象已经获得了顶级命名空间与相应目录的映射,换句话说,如果有命名空间 AppConsoleKernel,我们已经知道了 App 对应的目录,接下来我们就要解决下面的就是 ConsoleKernel这一段。 注册 我们先回顾...

    wanghui 评论0 收藏0
  • LeetCode偶尔一题 —— 832. 翻转图像

    题目描述 showImg(https://user-gold-cdn.xitu.io/2019/8/19/16caa79a911512b4?w=761&h=578&f=png&s=55670); 分析题目 按照题意我们只要先对每个子数组先做逆序,再做 0 --> 1 和 1 --> 0 的替换即可,于是我们可以写出以下代码: /** * @param {number[][]} A * @ret...

    WalkerXu 评论0 收藏0
  • 深入理解Java的整型类型:如何实现2+2=5?

    摘要:先看下这段神奇的代码执行结果那么到底做了什么神奇的事情呢先看代码所以这个例子其实包含了中整型类型的一个知识点。最后打印出来的值,实际上是的返回值。只有当输入参数不在区间内,才执行代码,基于输入参数创建一个新的实例。 先看下这段神奇的Java代码: public static void main(String[] args) throws Exception { doSom...

    aristark 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<