Bird
Raised Fist0
DSA Pythonprogramming~20 mins

Set Matrix Zeroes In Place in DSA Python - Practice Problems & Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Matrix Zeroes Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of the matrix after running the code?
Given the matrix below, what will be its state after applying the Set Matrix Zeroes In Place algorithm?
DSA Python
matrix = [
  [1, 2, 3],
  [4, 0, 6],
  [7, 8, 9]
]

# After running the algorithm, print the matrix row-wise
A[[1, 2, 3], [4, 0, 6], [7, 8, 9]]
B[[1, 0, 3], [0, 0, 0], [0, 0, 0]]
C[[1, 0, 3], [0, 0, 0], [7, 0, 9]]
D[[1, 0, 3], [4, 0, 6], [7, 0, 9]]
Attempts:
2 left
💡 Hint
Remember that if an element is zero, its entire row and column become zero.
❓ Predict Output
intermediate
2:00remaining
What is the output matrix after applying the algorithm?
Consider this matrix. What will it look like after applying the Set Matrix Zeroes In Place algorithm?
DSA Python
matrix = [
  [0, 1, 2, 0],
  [3, 4, 5, 2],
  [1, 3, 1, 5]
]

# Print the matrix row-wise after the algorithm
A[[0, 0, 0, 0], [0, 4, 5, 0], [0, 3, 1, 0]]
B[[0, 1, 2, 0], [3, 4, 5, 2], [1, 3, 1, 5]]
C[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
D[[0, 0, 0, 0], [3, 4, 5, 2], [1, 3, 1, 5]]
Attempts:
2 left
💡 Hint
Zeros in the first row cause their columns and rows to be zeroed.
🔧 Debug
advanced
2:00remaining
What error does this code raise when run?
This code tries to set matrix zeroes in place. What error will it raise?
DSA Python
def set_zeroes(matrix):
    rows = len(matrix)
    cols = len(matrix[0])
    zero_rows = set()
    zero_cols = set()

    for i in range(rows):
        for j in range(cols):
            if matrix[i][j] == 0:
                zero_rows.add(i)
                zero_cols.add(j)

    for i in zero_rows:
        for j in range(cols):
            matrix[i][j] = 0

    for j in zero_cols:
        for i in range(rows):
            matrix[i][j] = 0

matrix = [[1,2,3],[4,0,6],[7,8,9]]
set_zeroes(matrix)
print(matrix[3])
ATypeError: 'int' object is not subscriptable
BIndexError: list index out of range
CNo error, prints [7, 8, 9]
DAttributeError: 'set' object has no attribute 'append'
Attempts:
2 left
💡 Hint
Check the print statement accessing matrix[3].
🧠 Conceptual
advanced
2:00remaining
How many elements are set to zero after running the algorithm on this matrix?
Given the matrix below, how many elements will be zero after applying the Set Matrix Zeroes In Place algorithm?
DSA Python
matrix = [
  [1, 2, 0],
  [4, 5, 6],
  [0, 8, 9]
]
A6
B5
C4
D8
Attempts:
2 left
💡 Hint
Count zeros in rows and columns affected by zeros.
🚀 Application
expert
3:00remaining
What is the final matrix after applying the algorithm in place?
Apply the Set Matrix Zeroes In Place algorithm on this matrix and provide the final matrix state.
DSA Python
matrix = [
  [1, 2, 3, 4],
  [5, 0, 7, 8],
  [9, 10, 11, 12],
  [0, 14, 15, 16]
]

# Print matrix row-wise after algorithm
A[[0, 0, 3, 4], [0, 0, 0, 0], [0, 0, 11, 12], [0, 0, 0, 0]]
B[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
C[[1, 0, 3, 4], [5, 0, 7, 8], [9, 0, 11, 12], [0, 0, 0, 0]]
D[[0, 2, 3, 4], [0, 0, 0, 0], [0, 10, 11, 12], [0, 0, 0, 0]]
Attempts:
2 left
💡 Hint
Zeros at (1,1) and (3,0) affect their rows and columns.

Practice

(1/5)
1. What is the main goal of the Set Matrix Zeroes In Place problem?
easy
A. Find the sum of all elements in the matrix.
B. Modify the matrix so that if an element is 0, its entire row and column become 0.
C. Sort each row of the matrix in ascending order.
D. Transpose the matrix without changing its elements.

Solution

  1. Step 1: Understand the problem requirement

    The problem asks to change the matrix so that if any element is zero, all elements in that element's row and column become zero.
  2. Step 2: Identify the correct description

    Modify the matrix so that if an element is 0, its entire row and column become 0. exactly describes this transformation, while others describe unrelated operations.
  3. Final Answer:

    Modify the matrix so that if an element is 0, its entire row and column become 0. -> Option B
  4. Quick Check:

    Set matrix zeroes means zero rows and columns [OK]
Hint: Remember zero means zero entire row and column [OK]
Common Mistakes:
  • Confusing with matrix transpose
  • Thinking only the zero element changes
  • Trying to sum or sort instead
2. Which of the following Python code snippets correctly initializes a 3x3 matrix with all zeros?
easy
A. matrix = [[0]*3]*3
B. matrix = [0,0,0]*3
C. matrix = [0]*3 for _ in range(3)
D. matrix = [[0 for _ in range(3)] for _ in range(3)]

Solution

  1. Step 1: Analyze each initialization method

    matrix = [[0]*3]*3 creates shallow copies of the same row, causing changes in one row to affect others. matrix = [[0 for _ in range(3)] for _ in range(3)] creates independent rows correctly. matrix = [0]*3 for _ in range(3) is invalid syntax. matrix = [0,0,0]*3 creates a flat list, not a matrix.
  2. Step 2: Choose the correct matrix initialization

    Only matrix = [[0 for _ in range(3)] for _ in range(3)] correctly creates a 3x3 matrix with independent rows filled with zeros.
  3. Final Answer:

    matrix = [[0 for _ in range(3)] for _ in range(3)] -> Option D
  4. Quick Check:

    Use nested list comprehension for independent rows [OK]
Hint: Use nested list comprehension for 2D matrix [OK]
Common Mistakes:
  • Using [[0]*3]*3 causes shared references
  • Incorrect syntax in option C
  • Flat list instead of 2D matrix
3. What will be the matrix after applying the Set Matrix Zeroes In Place logic on this matrix?
[[1, 2, 3],
 [4, 0, 6],
 [7, 8, 9]]
medium
A. [[1, 0, 3], [0, 0, 0], [7, 0, 9]]
B. [[1, 2, 3], [4, 0, 6], [7, 8, 9]]
C. [[1, 2, 3], [0, 0, 0], [7, 8, 9]]
D. [[0, 0, 0], [0, 0, 0], [0, 0, 0]]

Solution

  1. Step 1: Identify zero positions

    The zero is at position (1,1) (second row, second column).
  2. Step 2: Set entire row 1 and column 1 to zero

    Row 1 becomes [0,0,0]. Column 1 elements at rows 0 and 2 become zero, changing matrix to [[1,0,3],[0,0,0],[7,0,9]].
  3. Final Answer:

    [[1, 0, 3], [0, 0, 0], [7, 0, 9]] -> Option A
  4. Quick Check:

    Zero at (1,1) zeroes row 1 and column 1 [OK]
Hint: Zero row and column for each zero element [OK]
Common Mistakes:
  • Not zeroing the entire column
  • Changing elements not in zero row/column
  • Confusing row and column indices
4. Given this code snippet to set matrix zeroes in place, what is the main bug?
def setZeroes(matrix):
    rows = len(matrix)
    cols = len(matrix[0])
    zero_rows = set()
    zero_cols = set()
    for i in range(rows):
        for j in range(cols):
            if matrix[i][j] == 0:
                zero_rows.add(i)
                zero_cols.add(j)
    for i in zero_rows:
        for j in range(cols):
            matrix[i][j] = 0
    for j in zero_cols:
        for i in range(rows):
            matrix[i][j] = 0
medium
A. It misses zeroing the diagonal elements.
B. It modifies the matrix before identifying all zeroes.
C. It uses extra space, not in-place modification.
D. It does not handle empty matrices.

Solution

  1. Step 1: Analyze space usage

    The code uses sets zero_rows and zero_cols to store indices, which uses extra space proportional to matrix size.
  2. Step 2: Understand in-place requirement

    The problem requires modifying the matrix without extra space (in-place). Using sets violates this.
  3. Final Answer:

    It uses extra space, not in-place modification. -> Option C
  4. Quick Check:

    Extra sets mean not in-place [OK]
Hint: In-place means no extra sets or arrays [OK]
Common Mistakes:
  • Ignoring extra space used by sets
  • Thinking diagonal needs special handling
  • Assuming empty matrix causes error here
5. How can you modify the matrix [[1,2,3],[4,0,6],[7,8,9]] in place to set zeroes without using extra space for rows and columns? Which approach is correct?
hard
A. Use first row and first column as markers to track zero rows and columns, then update matrix accordingly.
B. Create two separate lists to store zero rows and columns, then update matrix.
C. Copy the matrix, modify the copy, then replace original matrix.
D. Only zero the rows where zero is found, ignore columns.

Solution

  1. Step 1: Use first row and column as markers

    Mark zeros in first row and column to remember which rows and columns to zero later, avoiding extra space.
  2. Step 2: Update matrix based on markers

    After marking, iterate matrix to set zeros in rows and columns indicated by markers, then handle first row and column separately.
  3. Final Answer:

    Use first row and first column as markers to track zero rows and columns, then update matrix accordingly. -> Option A
  4. Quick Check:

    First row/column markers enable in-place zeroing [OK]
Hint: Use matrix edges as markers to avoid extra space [OK]
Common Mistakes:
  • Using extra lists violates in-place rule
  • Copying matrix wastes space
  • Ignoring zero columns leads to wrong result
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard