Leetcode 832.翻转图像 2021.02.24
二月 24, 2021
832.翻转图像
- 难度:简单
给定一个二进制矩阵
A
,我们想先水平翻转图像,然后反转图像并返回结果。水平翻转图片就是将图片的每一行都进行翻转,即逆序。例如,水平翻转
[1, 1, 0]
的结果是[0, 1, 1]
。反转图片的意思是图片中的
0
全部被1
替换,1
全部被0
替换。例如,反转[0, 1, 1]
的结果是[1, 0, 0]
。
示例
示例1:
输入:[[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:
输入:[[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]]
说明
- 1 <= A.length = A[0].length <= 20
- 0 <= A[i][j] <= 1
思路
双指针
- 遍历数组A
- 左指针指向数组a头,右指针指向数组b的尾
- 左指针赋值到临时变量temp中
- 取反的右指针赋值到左指针
- 取反的临时变量temp赋值到右指针
- 左指针右移
- 右指针左移
- 直至左指针大于右指针
无敌外挂大法
- 逐位求反
- 调用STL中的alalgorithm库中的
reverse()
函数反转数组
代码实现
1 | //双指针大法好 |
查看评论