class Solution {
public:
vector<vector<int>> flipAndInvertImage(vector<vector<int>>& image) {
}
};
832. 翻转图像
给定一个 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
.原站题解
golang 解法, 执行用时: 4 ms, 内存消耗: 2.8 MB, 提交时间: 2021-06-09 15:49:16
func flipAndInvertImage(image [][]int) [][]int { n := len(image) for i := 0; i < n; i++ { for j := 0; j < n/2; j++ { image[i][j], image[i][n-1-j] = image[i][n-1-j], image[i][j] } } for i := 0; i < n; i++ { for j := 0; j < n; j++ { image[i][j] ^= 1 } } return image }