Bird
Raised Fist0
DSA Goprogramming~10 mins

Set Matrix Zeroes In Place in DSA Go - Interactive Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to mark the first row and column if a zero is found.

DSA Go
for i := 0; i < len(matrix); i++ {
    for j := 0; j < len(matrix[0]); j++ {
        if matrix[i][j] == 0 {
            matrix[i][0] = [1]
            matrix[0][j] = 0
        }
    }
}
Drag options to blanks, or click blank then click option'
A0
B1
C-1
Dnil
Attempts:
3 left
💡 Hint
Common Mistakes
Using 1 instead of 0 to mark the row or column.
Not marking the first row or column at all.
2fill in blank
medium

Complete the code to zero out the cells based on marks in the first row and column.

DSA Go
for i := 1; i < len(matrix); i++ {
    for j := 1; j < len(matrix[0]); j++ {
        if matrix[i][0] == [1] || matrix[0][j] == 0 {
            matrix[i][j] = 0
        }
    }
}
Drag options to blanks, or click blank then click option'
A1
B0
Cnil
D-1
Attempts:
3 left
💡 Hint
Common Mistakes
Checking for 1 instead of 0 in the condition.
Not using logical OR to check both row and column markers.
3fill in blank
hard

Fix the error in the code that handles zeroing the first column if needed.

DSA Go
if firstColHasZero {
    for i := 0; i < len(matrix); i++ {
        matrix[i][[1]] = 0
    }
}
Drag options to blanks, or click blank then click option'
A-1
Blen(matrix[0])
C1
D0
Attempts:
3 left
💡 Hint
Common Mistakes
Using 1 instead of 0 for the first column index.
Using negative or out-of-range indices.
4fill in blank
hard

Fill both blanks to check if the first row has zero and mark it.

DSA Go
firstRowHasZero := false
for j := 0; j < len(matrix[0]); j++ {
    if matrix[[1]][j] == 0 {
        firstRowHasZero = true
        break
    }
}
Drag options to blanks, or click blank then click option'
A1
Blen(matrix[0]) - 1
C0
Dlen(matrix) - 1
Attempts:
3 left
💡 Hint
Common Mistakes
Using 1 or last index instead of 0 for the first row.
Checking columns instead of rows.
5fill in blank
hard

Fill all three blanks to zero the first row if needed and complete the function.

DSA Go
if firstRowHasZero {
    for j := 0; j < len(matrix[[1]]); j++ {
        matrix[[2]][j] = [3]
    }
}
Drag options to blanks, or click blank then click option'
A0
B1
D-1
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong row index for the first row.
Setting cells to 1 or -1 instead of 0.

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