难度:简单
给定一个
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
上一篇:BP屏幕增强