Bird
Raised Fist0
DSA Goprogramming~20 mins

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

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Matrix Zero Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of Set Matrix Zeroes In Place after one zero found
What is the state of the matrix after running the Set Matrix Zeroes In Place algorithm on this input?
DSA Go
matrix := [][]int{
  {1, 2, 3},
  {4, 0, 6},
  {7, 8, 9},
}
// After calling setZeroes(matrix)
A[[1,0,3],[0,0,0],[7,0,9]]
B[[1,0,3],[0,0,0],[0,0,0]]
C[[1,0,3],[4,0,6],[7,0,9]]
D[[1,2,3],[4,0,6],[7,8,9]]
Attempts:
2 left
💡 Hint
Remember that all elements in the row and column of any zero element become zero.
❓ Predict Output
intermediate
2:00remaining
Output of Set Matrix Zeroes In Place with multiple zeros
What is the matrix after applying Set Matrix Zeroes In Place on this input?
DSA Go
matrix := [][]int{
  {0, 2, 3},
  {4, 5, 6},
  {7, 8, 0},
}
// After calling setZeroes(matrix)
A[[0,0,0],[0,0,0],[0,0,0]]
B[[0,2,0],[4,5,6],[0,8,0]]
C[[0,0,0],[4,5,0],[0,0,0]]
D[[0,0,0],[0,5,0],[0,0,0]]
Attempts:
2 left
💡 Hint
Zeros in first row and last column affect entire rows and columns.
🔧 Debug
advanced
2:00remaining
Identify the error in this Set Matrix Zeroes In Place implementation
What error will this Go code cause when run on a matrix with zeros?
DSA Go
func setZeroes(matrix [][]int) {
  rows := len(matrix)
  cols := len(matrix[0])
  for i := 0; i < rows; i++ {
    for j := 0; j < cols; j++ {
      if matrix[i][j] == 0 {
        for k := 0; k < rows; k++ {
          matrix[k][j] = 0
        }
        for l := 0; l < cols; l++ {
          matrix[i][l] = 0
        }
      }
    }
  }
}
AIndex out of range error
BCorrect output with no error
CIncorrect output due to modifying matrix while iterating
DCompilation error due to missing return
Attempts:
2 left
💡 Hint
Modifying matrix elements while scanning causes repeated zeroing.
🧠 Conceptual
advanced
2:00remaining
Space complexity of Set Matrix Zeroes In Place optimized approach
What is the space complexity of the optimal in-place Set Matrix Zeroes algorithm that uses the first row and column as markers?
AO(m * n) due to copying matrix
BO(1) constant extra space
CO(m + n) where m and n are matrix dimensions
DO(min(m, n)) for storing zero positions
Attempts:
2 left
💡 Hint
The algorithm uses matrix itself to store zero info.
🚀 Application
expert
2:00remaining
Number of zeroed elements after Set Matrix Zeroes In Place
Given this matrix, how many elements will be zero after applying Set Matrix Zeroes In Place?
DSA Go
matrix := [][]int{
  {1, 2, 3, 4},
  {5, 0, 7, 8},
  {9, 10, 11, 12},
  {0, 14, 15, 16},
}
// After calling setZeroes(matrix)
A12
B11
C8
D9
Attempts:
2 left
💡 Hint
Count all elements in rows and columns containing zeros, avoid double counting.

Practice

(1/5)
1. What is the main goal of the Set Matrix Zeroes In Place problem?
easy
A. Modify the matrix so that if an element is 0, its entire row and column become 0
B. Find the sum of all elements in the matrix
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 any row or column containing a zero should be set entirely to zero.
  2. Step 2: Identify the correct operation

    Only Modify the matrix so that if an element is 0, its entire row and column become 0 describes this exact operation, modifying rows and columns based on zero elements.
  3. Final Answer:

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

    Set rows and columns to zero = Modify matrix [OK]
Hint: Remember: zero means zero out whole row and column [OK]
Common Mistakes:
  • Confusing with matrix transpose
  • Trying to sum elements instead of modifying
  • Sorting rows instead of zeroing
2. Which of the following Go code snippets correctly declares a fixed-size 2D array of integers?
easy
A. matrix := [][]int{{1, 2}, {3, 4}}
B. matrix := [2][2]int{{1, 2}, {3, 4}}
C. matrix := [][]int{1, 2, 3, 4}
D. matrix := [2]int{1, 2, 3, 4}

Solution

  1. Step 1: Understand Go 2D array declaration

    In Go, fixed-size 2D arrays use syntax like [rows][cols]type, so [2][2]int is a 2x2 matrix.
  2. Step 2: Check each option

    matrix := [2][2]int{{1, 2}, {3, 4}} correctly declares a 2x2 integer array with values. matrix := [][]int{{1, 2}, {3, 4}} is a slice of slices (dynamic), not a fixed-size array. matrix := [][]int{1, 2, 3, 4} and D are invalid for 2D matrix.
  3. Final Answer:

    matrix := [2][2]int{{1, 2}, {3, 4}} -> Option B
  4. Quick Check:

    Fixed 2D array syntax = [2][2]int [OK]
Hint: Use [rows][cols]type for fixed 2D arrays in Go [OK]
Common Mistakes:
  • Using slice syntax when fixed array needed
  • Incorrect nesting of braces
  • Declaring 1D array instead of 2D
3. What will be the matrix after running the following Go code snippet?
matrix := [][]int{
  {1, 2, 3},
  {4, 0, 6},
  {7, 8, 9},
}
// After applying Set Matrix Zeroes In Place logic
// (zero out rows and columns containing zero)
medium
A. [[1, 0, 3], [0, 0, 0], [0, 0, 0]]
B. [[1, 2, 3], [0, 0, 0], [7, 0, 9]]
C. [[1, 0, 3], [0, 0, 0], [7, 0, 9]]
D. [[0, 0, 0], [0, 0, 0], [0, 0, 0]]

Solution

  1. Step 1: Identify zero positions

    Zero is at matrix[1][1]. So row 1 and column 1 must be zeroed.
  2. Step 2: Apply zeroing

    Row 1 becomes [0,0,0]. Column 1 elements at rows 0 and 2 become 0. So matrix[0][1] and matrix[2][1] are zero.
  3. Final Answer:

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

    Zero row and column applied correctly = [[1,0,3],[0,0,0],[7,0,9]] [OK]
Hint: Zero entire row and column for each zero found [OK]
Common Mistakes:
  • Zeroing entire matrix
  • Missing zero in column 1 for rows 0 and 2
  • Zeroing wrong rows or columns
4. Consider this Go function snippet for setting matrix zeroes:
func setZeroes(matrix [][]int) {
  for i := 0; i < len(matrix); i++ {
    for j := 0; j < len(matrix[0]); j++ {
      if matrix[i][j] == 0 {
        for k := 0; k < len(matrix); k++ {
          matrix[k][j] = 0
        }
        for l := 0; l < len(matrix[0]); l++ {
          matrix[i][l] = 0
        }
      }
    }
  }
}
What is the main problem with this code?
medium
A. It only zeros rows but not columns
B. It uses wrong loop ranges for rows and columns
C. It does not check for zero elements at all
D. It modifies the matrix while iterating, causing incorrect zeroing

Solution

  1. Step 1: Analyze matrix modification during iteration

    The code sets zeros immediately when it finds a zero, changing matrix elements during iteration.
  2. Step 2: Understand side effects

    This causes new zeros to appear and triggers more zeroing incorrectly, leading to wrong final matrix.
  3. Final Answer:

    It modifies the matrix while iterating, causing incorrect zeroing -> Option D
  4. Quick Check:

    In-place modification during scan = incorrect zeroing [OK]
Hint: Mark zeros first, then update matrix to avoid side effects [OK]
Common Mistakes:
  • Changing matrix while scanning
  • Not using extra storage or flags
  • Assuming immediate zeroing is safe
5. You want to set matrix zeroes in place with O(1) extra space. Which approach below correctly achieves this in Go?
hard
A. Use first row and first column as markers to track zero rows and columns, then update matrix accordingly
B. Create a separate boolean matrix to mark zero rows and columns, then update original matrix
C. Copy matrix to a new matrix and update zeros there to avoid modifying original during iteration
D. Use recursion to zero rows and columns when zero found

Solution

  1. Step 1: Understand space constraints

    O(1) extra space means no additional matrix or large data structures allowed.
  2. Step 2: Use first row and column as markers

    Mark zeros in first row and column to remember which rows and columns to zero later, then update matrix in place.
  3. Step 3: Avoid extra space and recursion

    Options A and B use extra space, D uses recursion unnecessarily.
  4. Final Answer:

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

    In-place markers = O(1) space zeroing [OK]
Hint: Use matrix edges as flags to save space [OK]
Common Mistakes:
  • Using extra arrays violating space constraint
  • Modifying matrix during iteration without markers
  • Overcomplicating with recursion
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