列表

详情


832. 翻转图像

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

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

反转图片的意思是图片中的 0 全部被 1 替换, 1 全部被 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]]

 

提示:

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: vector<vector<int>> flipAndInvertImage(vector<vector<int>>& image) { } };

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
}

上一题