diff --git a/lcci/01.08.Zero Matrix/README.md b/lcci/01.08.Zero Matrix/README.md index 3cef9fd644bf6..86413b929a638 100644 --- a/lcci/01.08.Zero Matrix/README.md +++ b/lcci/01.08.Zero Matrix/README.md @@ -117,6 +117,37 @@ class Solution { } ``` +### **JavaScript** + +```js +/** + * @param {number[][]} matrix + * @return {void} Do not return anything, modify matrix in-place instead. + */ +var setZeroes = function(matrix) { + let m = matrix.length, n = matrix[0].length; + let rows = new Array(m).fill(false); + let cols = new Array(n).fill(false); + // 标记 + for (let i = 0; i < m; i++) { + for (let j = 0; j < n; j++) { + if (matrix[i][j] == 0) { + rows[i] = true; + cols[j] = true; + } + } + } + // 清零 + for (let i = 0; i < m; i++) { + for (let j = 0; j < n; j++) { + if (matrix[i][j] != 0 && (rows[i] || cols[j])) { + matrix[i][j] = 0; + } + } + } +}; +``` + ### **...** ``` diff --git a/lcci/01.08.Zero Matrix/README_EN.md b/lcci/01.08.Zero Matrix/README_EN.md index a1585a7f731aa..3d89bcff062a9 100644 --- a/lcci/01.08.Zero Matrix/README_EN.md +++ b/lcci/01.08.Zero Matrix/README_EN.md @@ -132,6 +132,37 @@ class Solution { } ``` +### **JavaScript** + +```js +/** + * @param {number[][]} matrix + * @return {void} Do not return anything, modify matrix in-place instead. + */ +var setZeroes = function(matrix) { + let m = matrix.length, n = matrix[0].length; + let rows = new Array(m).fill(false); + let cols = new Array(n).fill(false); + // 标记 + for (let i = 0; i < m; i++) { + for (let j = 0; j < n; j++) { + if (matrix[i][j] == 0) { + rows[i] = true; + cols[j] = true; + } + } + } + // 清零 + for (let i = 0; i < m; i++) { + for (let j = 0; j < n; j++) { + if (matrix[i][j] != 0 && (rows[i] || cols[j])) { + matrix[i][j] = 0; + } + } + } +}; +``` + ### **...** ``` diff --git a/lcci/01.08.Zero Matrix/Solution.js b/lcci/01.08.Zero Matrix/Solution.js new file mode 100644 index 0000000000000..8ad1812fc5fec --- /dev/null +++ b/lcci/01.08.Zero Matrix/Solution.js @@ -0,0 +1,26 @@ +/** + * @param {number[][]} matrix + * @return {void} Do not return anything, modify matrix in-place instead. + */ + var setZeroes = function(matrix) { + let m = matrix.length, n = matrix[0].length; + let rows = new Array(m).fill(false); + let cols = new Array(n).fill(false); + // 标记 + for (let i = 0; i < m; i++) { + for (let j = 0; j < n; j++) { + if (matrix[i][j] == 0) { + rows[i] = true; + cols[j] = true; + } + } + } + // 清零 + for (let i = 0; i < m; i++) { + for (let j = 0; j < n; j++) { + if (matrix[i][j] != 0 && (rows[i] || cols[j])) { + matrix[i][j] = 0; + } + } + } +}; \ No newline at end of file