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.

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
};

Questions

References

LC

Two Pointers