Similar Problems

Similar Problems not available

Flipping An Image - Leetcode Solution


  • amazon
  • google

LeetCode:  Flipping An Image Leetcode Solution

Difficulty: Easy

Topics: two-pointers matrix array bit-manipulation simulation  

Problem Statement:

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


Input: [[1,1,0],[1,0,1],[0,0,0]]

Output: [[1,0,0],[0,1,0],[1,1,1]]


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


To solve this problem, we can use the following steps:

  1. Loop through each row of the given matrix and reverse it.

  2. Then, loop through each element of the matrix and invert it.

  3. Return the resulting matrix.

Let us see the Python code that implements the above solution:

class Solution: def flipAndInvertImage(self, A: List[List[int]]) -> List[List[int]]:

    # Reverse each row of the matrix
    for i in range(len(A)):
        A[i] = A[i][::-1]
    # Invert each element of the matrix
    for i in range(len(A)):
        for j in range(len(A[0])):
            A[i][j] = 1 - A[i][j]
    # Return the resulting matrix
    return A

Time complexity: O(n^2), where n is the size of the matrix.

Space complexity: O(1). We are modifying the given matrix in place without using any extra space.

Flipping An Image Solution Code