美文网首页
LeetCode-数组-867.转置矩阵

LeetCode-数组-867.转置矩阵

作者: 灶君司命 | 来源:发表于2021-02-25 23:13 被阅读0次

题目描述

给定一个二进制矩阵 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]]

示例2

输入:[[1,1,0,0],[1,0,0,1],[0,1,1,1],[1,0,1,0]]
输出:[[1,1,0,0],[0,1,1,0],[0,0,0,1],[1,0,1,0]]
解释:首先翻转每一行: [[0,0,1,1],[1,0,0,1],[1,1,1,0],[0,1,0,1]];
然后反转图片: [[1,1,0,0],[0,1,1,0],[0,0,0,1],[1,0,1,0]]

个人解题思路

  1. 先做水平翻转
  2. 再做图片反转

代码

class Solution {
    public int[][] flipAndInvertImage(int[][] A) {
        int length1=A.length;
        int  length2=A[0].length;
        // 先做水平翻转
        for(int i=0;i<length1;i++){
            for (int j=0;j<length2/2;j++){
                int temp=A[i][length2-j-1];
                 A[i][length2 -j - 1] = A[i][j];
                 A[i][j] = temp;
            }
        }
        // 再做反转
         for(int i=0;i<length1;i++){
            for (int j=0;j<length2;j++){
                    A[i][j]=A[i][j]^1;
            }
         }
        return A;
    }
}

官网解题方法

class Solution {
    public int[][] flipAndInvertImage(int[][] A) {
        int n = A.length;
        for (int i = 0; i < n; i++) {
            int left = 0, right = n - 1;
            while (left < right) {
                if (A[i][left] == A[i][right]) {
                    A[i][left] ^= 1;
                    A[i][right] ^= 1;
                }
                left++;
                right--;
            }
            if (left == right) {
                A[i][left] ^= 1;
            }
        }
        return A;
    }
}

相关文章

  • 算法练习100天-第5天

    列别:数组 题目: 867. 转置矩阵 我的解题思路: 转置矩阵就是交换矩阵的行索引、列索引 定义一个新的二维数组...

  • LeetCode-数组-867.转置矩阵

    题目描述 给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果。 水平翻转图片就是将图片的每一行都...

  • 2021.2.25每日一题

    867. 转置矩阵[https://leetcode-cn.com/problems/transpose-matr...

  • 867. 转置矩阵

    给定一个矩阵 A, 返回 A 的转置矩阵。矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。 示例 1...

  • LeetCode 867. 转置矩阵

    题目 给定一个矩阵 A, 返回 A 的转置矩阵。 矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。 ...

  • 【leetcode-数组】矩阵置零

    【leetcode-数组】矩阵置零 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都...

  • IOS 算法(基础篇) ----- 转置矩阵

    给你一个二维整数数组 matrix, 返回 matrix 的 转置矩阵 。矩阵的 转置 是指将矩阵的主对角线翻转,...

  • Learn_for_Numpy

    数组转置和交换轴 转置 矩阵的行列交换 1. numpy.where (x if condition else ...

  • Vue 纵向Table转横向Table (转置)

    数组参照矩阵思想, 对数组进行转置。 缺点: 转置后的数组仅是单纯的存每一行数据的数组用于展示, 失去了原数组...

  • 2018-05-25

    python 1.python中数组和矩阵乘法及使用总结 对数组的运算 矩阵求逆,转置,求迹

网友评论

      本文标题:LeetCode-数组-867.转置矩阵

      本文链接:https://www.haomeiwen.com/subject/rxypfltx.html