832 Flipping an Image
Problem Statement
Given an n x n
binary matrix image
, 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 each0
is replaced by1
, and each1
is replaced by0
. - For example, inverting
[0,1,1]
results in[1,0,0]
.
Input: image = [[1,1,0],[1,0,1],[0,0,0|1,1,0],[1,0,1],[0,0,0]]
Output: [[1,0,0],[0,1,0],[1,1,1|1,0,0],[0,1,0],[1,1,1]]
Approach
Loop through the array, init two pointers, one at the beginning, one at the end, while loop through, swap position and invert via 1 -
Solution
var flipAndInvertImage = function(image) {
for (const img of image) {
let l = 0,
r = img.length - 1
while (l <= r) {
[img[l], img[r]] = [1 - img[r], 1 - img[l]];
l++
r--
}
}
return image
};