Bird
Raised Fist0
DSA Javascriptprogramming~10 mins

Set Matrix Zeroes In Place in DSA Javascript - Interactive Practice

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

Complete the code to start iterating over the matrix rows.

DSA Javascript
for (let [1] = 0; [1] < matrix.length; [1]++) {
  // code
}
Drag options to blanks, or click blank then click option'
Arow
Bi
Ccol
Dj
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'col' or 'j' for row iteration causes confusion.
Using an undefined variable name.
2fill in blank
medium

Complete the code to check if the current element is zero.

DSA Javascript
if (matrix[i][[1]] === 0) {
  // code
}
Drag options to blanks, or click blank then click option'
Ai
Bcol
Crow
Dj
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'i' for both row and column index.
Using variable names not declared in loops.
3fill in blank
hard

Fix the error in marking the first row zero flag.

DSA Javascript
if (matrix[0][j] === 0) {
  [1] = true;
}
Drag options to blanks, or click blank then click option'
AfirstRowZero
BfirstColZero
CrowZeroFlag
DcolZeroFlag
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'firstColZero' instead of 'firstRowZero'.
Using undefined variable names.
4fill in blank
hard

Fill both blanks to mark zeroes in first row and column.

DSA Javascript
if (matrix[i][j] === 0) {
  matrix[i][[1]] = 0;
  matrix[[2]][j] = 0;
}
Drag options to blanks, or click blank then click option'
A0
Bi
Cj
D1
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'i' or 'j' instead of 0 for marking.
Using 1 which is not the first row or column.
5fill in blank
hard

Fill all three blanks to set matrix elements to zero based on markers.

DSA Javascript
for (let i = 1; i < matrix.length; i++) {
  for (let j = 1; j < matrix[0].length; j++) {
    if (matrix[i][[1]] === 0 || matrix[[2]][j] === 0) {
      matrix[i][j] = [3];
    }
  }
}
Drag options to blanks, or click blank then click option'
A0
D1
Attempts:
3 left
💡 Hint
Common Mistakes
Using 1 instead of 0 for markers.
Setting matrix[i][j] to 1 instead of 0.

Practice

(1/5)
1. What is the main goal of the Set Matrix Zeroes In Place problem?
easy
A. Find the sum of all zero elements in the matrix.
B. Modify the matrix so that if an element is 0, its entire row and column become 0 without using extra space.
C. Count how many zeroes are in the matrix.
D. Sort the matrix rows and columns after setting zeroes.

Solution

  1. Step 1: Understand the problem requirement

    The problem asks to set entire rows and columns to zero if any element in them is zero, modifying the matrix directly without extra space.
  2. Step 2: Differentiate from other tasks

    Options B, C, and D describe different tasks like summing, counting, or sorting, which are not the goal here.
  3. Final Answer:

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

    Goal = Modify matrix in place [OK]
Hint: Focus on in-place zeroing of rows and columns [OK]
Common Mistakes:
  • Thinking the problem is about counting zeroes
  • Assuming extra space is allowed
  • Confusing with sorting or summing tasks
2. Which of the following JavaScript code snippets correctly initializes a 3x3 matrix filled with zeros?
easy
A. const matrix = [[0,0,0],[0,0],[0,0,0]];
B. const matrix = Array(3).fill(Array(3).fill(0));
C. const matrix = Array.from({ length: 3 }, () => Array(3).fill(0));
D. const matrix = new Array(3).map(new Array(3).fill(0));

Solution

  1. Step 1: Check each initialization method

    const matrix = Array(3).fill(Array(3).fill(0)); uses fill with the same inner array reference, causing all rows to point to the same array, which is incorrect.
  2. Step 2: Identify correct independent row creation

    const matrix = Array.from({ length: 3 }, () => Array(3).fill(0)); uses Array.from with a function to create new arrays for each row, correctly initializing independent rows filled with zeros.
  3. Final Answer:

    const matrix = Array.from({ length: 3 }, () => Array(3).fill(0)); -> Option C
  4. Quick Check:

    Independent rows = const matrix = Array.from({ length: 3 }, () => Array(3).fill(0)); [OK]
Hint: Use Array.from with a function for independent rows [OK]
Common Mistakes:
  • Using fill with array directly causing shared references
  • Incorrect row lengths in nested arrays
  • Using map on uninitialized arrays
3. What will be the matrix after running the following code?
function setZeroes(matrix) {
  const rows = matrix.length;
  const cols = matrix[0].length;
  let firstRowZero = false;
  let firstColZero = false;

  for (let i = 0; i < rows; i++) {
    if (matrix[i][0] === 0) firstColZero = true;
  }
  for (let j = 0; j < cols; j++) {
    if (matrix[0][j] === 0) firstRowZero = true;
  }

  for (let i = 1; i < rows; i++) {
    for (let j = 1; j < cols; j++) {
      if (matrix[i][j] === 0) {
        matrix[i][0] = 0;
        matrix[0][j] = 0;
      }
    }
  }

  for (let i = 1; i < rows; i++) {
    for (let j = 1; j < cols; j++) {
      if (matrix[i][0] === 0 || matrix[0][j] === 0) {
        matrix[i][j] = 0;
      }
    }
  }

  if (firstColZero) {
    for (let i = 0; i < rows; i++) matrix[i][0] = 0;
  }
  if (firstRowZero) {
    for (let j = 0; j < cols; j++) matrix[0][j] = 0;
  }
}

let mat = [
  [1,1,1],
  [1,0,1],
  [1,1,1]
];
setZeroes(mat);
console.log(mat);
medium
A. [[1,0,1],[1,0,1],[1,0,1]]
B. [[0,0,0],[0,0,0],[0,0,0]]
C. [[1,1,1],[1,0,1],[1,1,1]]
D. [[1,0,1],[0,0,0],[1,0,1]]

Solution

  1. Step 1: Identify zero positions and mark rows and columns

    The zero is at position (1,1). The first row and column do not have zero initially. The code marks matrix[1][0] and matrix[0][1] as zero.
  2. Step 2: Set zeroes based on marks and update first row/column if needed

    Using marks, the code sets matrix[1][1], matrix[1][2], matrix[0][1], and matrix[2][1] to zero. Since firstRowZero and firstColZero are false, no changes to first row or column.
  3. Final Answer:

    [[1,0,1],[0,0,0],[1,0,1]] -> Option D
  4. Quick Check:

    Zero at (1,1) zeroes row 1 and column 1 [OK]
Hint: Mark first row/col to track zero rows/columns [OK]
Common Mistakes:
  • Not handling first row and column separately
  • Overwriting marks too early
  • Missing zeroing of entire row or column
4. The following code attempts to set matrix zeroes in place but has a bug. What is the bug?
function setZeroes(matrix) {
  const rows = matrix.length;
  const cols = matrix[0].length;
  for (let i = 0; i < rows; i++) {
    for (let j = 0; j < cols; j++) {
      if (matrix[i][j] === 0) {
        for (let k = 0; k < cols; k++) matrix[i][k] = 0;
        for (let k = 0; k < rows; k++) matrix[k][j] = 0;
      }
    }
  }
}
medium
A. It modifies the matrix while iterating, causing incorrect zeroing.
B. It uses extra space which is not allowed.
C. It does not check for zero elements correctly.
D. It only sets zeroes in the first row and column.

Solution

  1. Step 1: Analyze the nested loops and zero setting

    The code sets zeroes immediately when it finds a zero, modifying the matrix during iteration.
  2. Step 2: Understand the effect of modifying during iteration

    Modifying the matrix while scanning causes new zeroes to appear, leading to extra rows and columns being zeroed incorrectly.
  3. Final Answer:

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

    In-place modification during iteration causes errors [OK]
Hint: Avoid changing matrix while scanning for zeroes [OK]
Common Mistakes:
  • Setting zeroes immediately instead of marking first
  • Not separating scanning and updating phases
  • Assuming immediate zeroing is safe
5. Given a 4x4 matrix:
[
  [0,1,2,0],
  [3,4,5,2],
  [1,3,1,5],
  [1,0,1,7]
]

After applying the in-place zeroing algorithm, what is the final matrix?
hard
A. [[0,0,0,0],[0,0,5,0],[0,0,1,0],[0,0,0,0]]
B. [[0,0,0,0],[3,4,5,2],[1,3,1,5],[1,0,1,7]]
C. [[0,1,2,0],[3,4,5,2],[1,3,1,5],[1,0,1,7]]
D. [[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]]

Solution

  1. Step 1: Identify zero positions in the matrix

    Zeroes are at positions (0,0), (0,3), and (3,1). These mark rows 0 and 3, and columns 0, 1, and 3 for zeroing.
  2. Step 2: Set entire rows and columns to zero based on marks

    Rows 0 and 3 become all zero. Columns 0, 1, and 3 become zero in all rows. The resulting matrix is [[0,0,0,0],[0,0,5,0],[0,0,1,0],[0,0,0,0]].
  3. Final Answer:

    [[0,0,0,0],[0,0,5,0],[0,0,1,0],[0,0,0,0]] -> Option A
  4. Quick Check:

    Zero rows and columns set correctly [OK]
Hint: Mark zero rows and columns, then update matrix once [OK]
Common Mistakes:
  • Missing zeroing some columns or rows
  • Overwriting matrix too early
  • Not handling multiple zeroes correctly
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