题目:给定一个二进制矩阵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]]
思路:此题思路比较明确,用两个循环,外环遍历数组,内环将逆序后的数组进行非0即1的判断即可。提交的代码击败了99.42%的用户。
class Solution: def flipAndInvertImage(self, A): """ :type A: List[List[int]] :rtype: List[List[int]] """ result = [] for i in A: j = i[::-1] for k in range(len(j)): if j[k] == 0: j[k] = 1 else: j[k] = 0 result.append(j) return result