LeetCode_832. Flipping an Image_Solution

原题链接

原题中文链接

一、题目描述

二、解题思路

题目所描述的意思是对每个数组先进行取反,并且对数组中的每个元素进行取反转换,所以一共要执行两个操作。

  • 使用reverse函数解决水平翻转的操作;
  • 由于是二进制矩阵,所以使X反转后的结果为 1-X。

三、Solution

C++代码:

class Solution {
public:
    vector<vector<int>> flipAndInvertImage(vector<vector<int>>& A) {
        size_t len = A.size();  //获得二进制数组的长度
        for (int i = 0; i < A.size(); i++)
        {
            reverse(A[i].begin(),A[i].end());  //执行翻转(逆序)二进制矩阵的操作
            for (int j = 0; j < A[i].size(); j++)
            {
                A[i][j] = 1 - A[i][j];  //执行反转二进制矩阵的操作
            }
        }
        return A;        
    }
};

四、个人收获

本题主要考察对数组和二进制的基本理解,同时也让我熟悉了reverse函数的用法。

Github代码

五、参考资料

二进制逆序(字节反转)

原文地址:https://www.cnblogs.com/OctoptusLian/p/9351503.html