/** Do not return anything, modify matrix in-place instead. */ function setZeroes(matrix: number[][]): void { const n = matrix.length; const m = matrix?.[0]?.length ?? 0; function clearColumn(column: number, row: number) { for (let i = 0; i < m; i++) { if (i !== row && matrix[column][i] !== 0) { matrix[column][i] = -1; } } } function clearRow(column: number, row: number) { for (let i = 0; i < n; i++) { if (i !== row && matrix[i][row] !== 0) { matrix[i][row] = -1; } } } for (let i = 0; i < n; i++) { for (let j = 0; j < m; j++) { if (matrix[i][j] === 0) { clearColumn(i, j); clearRow(i, j); } } } for (let i = 0; i < n; i++) { for (let j = 0; j < m; j++) { if (matrix[i][j] === -1) { matrix[i][j] = 0; } } } };