zoukankan      html  css  js  c++  java
  • [LeetCode] Flipping an Image

    Given a binary matrix A, we want to flip the image horizontally, then invert it, and return the resulting image.

    To flip an image horizontally means that each row of the image is reversed.  For example, flipping [1, 1, 0] horizontally results in [0, 1, 1].

    To invert an image means that each 0 is replaced by 1, and each 1 is replaced by 0. For example, inverting [0, 1, 1] results in [1, 0, 0].

    Example 1:

    Input: [[1,1,0],[1,0,1],[0,0,0]]
    Output: [[1,0,0],[0,1,0],[1,1,1]]
    Explanation: First reverse each row: [[0,1,1],[1,0,1],[0,0,0]].
    Then, invert the image: [[1,0,0],[0,1,0],[1,1,1]]
    

    Example 2:

    Input: [[1,1,0,0],[1,0,0,1],[0,1,1,1],[1,0,1,0]]
    Output: [[1,1,0,0],[0,1,1,0],[0,0,0,1],[1,0,1,0]]
    Explanation: First reverse each row: [[0,0,1,1],[1,0,0,1],[1,1,1,0],[0,1,0,1]].
    Then invert the image: [[1,1,0,0],[0,1,1,0],[0,0,0,1],[1,0,1,0]]
    

    Notes:

    • 1 <= A.length = A[0].length <= 20
    • 0 <= A[i][j] <= 1

    将一个二维数组中每一行先翻转,然后所有元素1变成0,0变成1.

    class Solution {
    public:
        vector<vector<int>> flipAndInvertImage(vector<vector<int>>& A) {
            vector<vector<int>> res;
            if (A.empty())
                return res;
            int m = A.size(), n = A[0].size();
            for (int i = 0; i < m; ++i)
            {
                vector<int> tmp(A[i].begin(), A[i].end());
                reverse(tmp.begin(), tmp.end());
                for (int j = 0; j < n; ++j)
                {
                    tmp[j] = 1 -tmp[j];
                }
                res.push_back(tmp);
            }
            return res;
        }
    };
  • 相关阅读:
    spring MVC fromeWork 與webwork2 mvc 比較
    JAVA Oauth 认证服务器的搭建
    HTTPS的工作原理
    理解HTTP幂等性
    支付交易一般性准则
    设计模式六大原则
    腾讯微信技术总监周颢:一亿用户增长背后的架构秘密
    Valid Parentheses
    4Sum
    Letter Combinations of a Phone Number
  • 原文地址:https://www.cnblogs.com/immjc/p/9145373.html
Copyright © 2011-2022 走看看