加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

832. Flipping an Image

发布时间:2020-12-14 03:19:23 所属栏目:大数据 来源:网络整理
导读:题目描述: 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] ?horizont

题目描述:

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].

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

Example 1:

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

Example 2:

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

Notes:

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

解题思路:

c++有个reverse函数可以实现容器反转,我这里没有用,直接遍历每个vector,交换元素。

题目不难,但是一直没能实现功能,最终发现是for(auto vec : A)的原因,应该使用for (auto &vec : A)。

代码:

 1 class Solution {
 2 public:
 3     vector<vector<int>> flipAndInvertImage(vector<vector<int>>& A) {
 4         for (auto& vec : A) {
 5             int i = 0; 
 6             int j = vec.size() - 1;
 7             while (i <= j) {
 8                 int tmp = !vec[j];
 9                 vec[j] = !vec[i];
10                 vec[i] = tmp;
11                 ++i;
12                 --j;
13             }
14         }
15         return A;
16     }
17 };

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读