832. 翻转图像(Python)

题目

难度:★☆☆☆☆
类型:几何,二维数组

给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果。

水平翻转图片就是将图片的每一行都进行翻转,即逆序。例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, 1]。

反转图片的意思是图片中的 0 全部被 1 替换, 1 全部被 0 替换。例如,反转 [0, 1, 1] 的结果是 [1, 0, 0]。

说明
1 <= A.length = A[0].length <= 20
0 <= A[i][j] <= 1

示例

示例 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. 颜色反转,可以用1减去每个像素点的值实现。

class Solution:
    def flipAndInvertImage(self, A):
        new_A = []
        for row in A:
            new_row = []
            for pixel in row:
                new_row.append(1-pixel)
            new_A.append(new_row[::-1])
        return new_A

紧凑写法:

class Solution:
    def flipAndInvertImage(self, A):
        return [[1-pixel for pixel in row][::-1] for row in A]

如有疑问或建议,欢迎评论区留言~

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目 给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果。水平翻转图片就是将图片的每一行都进行翻...
    sixkery阅读 3,873评论 0 1
  • 1、题目如下给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果。 水平翻转图片就是将图片的每一行...
    ZeroForSpider阅读 3,535评论 0 0
  • 给定一个二进制矩阵A,我们想先水平翻转图像,然后反转图像并返回结果。水平翻转图片就是将图片的每一行都进行翻转,即逆...
    SunSeaSky阅读 3,846评论 3 1
  • 给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果。水平翻转图片就是将图片的每一行都进行翻转,即...
    闭门造折阅读 1,196评论 0 0
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,969评论 1 45