难度:简单
给定一个
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
leetcode:832. 翻转图像(python3解法)
于 2023-03-15 14:37:31 首次发布