leetcode链接:
https://leetcode.cn/problems/set-matrix-zeroes/description/
方案一
暴力求解
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| List<int[]> ls = new ArrayList<>();
for (int i = 0; i < matrix.length; i++) { for (int j = 0; j < matrix[i].length; j++) { if (matrix[i][j] == 0) ls.add(new int[]{i, j}); } }
for (int[] is : ls) { for (int i = 0; i < matrix.length; i++) { matrix[i][is[1]] = 0; } for (int i = 0; i < matrix[is[0]].length; i++) { matrix[is[0]][i] = 0; } }
|
几乎最优方案
https://leetcode.cn/problems/set-matrix-zeroes/solution/ju-zhen-zhi-ling-by-leetcode-solution-9ll7/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| class Solution { public void setZeroes(int[][] matrix) { int m = matrix.length, n = matrix[0].length; boolean flagCol0 = false; for (int i = 0; i < m; i++) { if (matrix[i][0] == 0) { flagCol0 = true; } for (int j = 1; j < n; j++) { if (matrix[i][j] == 0) { matrix[i][0] = matrix[0][j] = 0; } } } for (int i = m - 1; i >= 0; i--) { for (int j = 1; j < n; j++) { if (matrix[i][0] == 0 || matrix[0][j] == 0) { matrix[i][j] = 0; } } if (flagCol0) { matrix[i][0] = 0; } } } }
作者:LeetCode-Solution 链接:https: 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
|