leetcode:832. 翻转图像(python3解法)
迪丽瓦拉
2025-05-28 11:41:51
0

难度:简单

        给定一个 n x n 的二进制矩阵 image ,先 水平 翻转图像,然后 反转 图像并返回 结果 。

水平翻转图片就是将图片的每一行都进行翻转,即逆序。

  • 例如,水平翻转 [1,1,0] 的结果是 [0,1,1]

反转图片的意思是图片中的 0 全部被 1 替换, 1 全部被 0 替换。

  • 例如,反转 [0,1,1] 的结果是 [1,0,0]

示例 1:

输入:image = [[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:

输入:image = [[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]]

提示:

  • n == image.length
  • n == image[i].length
  • 1 <= n <= 20
  • images[i][j] == 0 或 1.

题解:

class Solution:def flipAndInvertImage(self, image: List[List[int]]) -> List[List[int]]:res_shuipin_image = []  ## 第一次水品翻转结果res = []               ## 中间结果fianl_res = []        ## 最终结果a = 0                ## 循环叠加值'''第一次翻转'''for i in image:      res_shuipin_image.append(i[::-1])'''第二次翻转未切割'''for j in res_shuipin_image:for m in j:if m == 0:res.append(1)else:res.append(0)'''反转之后切割成二维数组'''for s in range(len(image)):fianl_res.append(res[a:len(image)+a])a += len(image)return fianl_res

 

相关内容