LeetCode No.73 SetMatrixZeroes
2017-03-15 20:03
423 查看
//Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place. if (matrix == null || matrix.length == 0 || matrix[0].length == 0) return; int m = matrix.length, n = matrix[0].length; boolean row = false, col = false; for (int i = 0; i < m; i++){ for (int j = 0; j < n; j++){ if (matrix[i][j] == 0) { matrix[0][j] = 0; matrix[i][0] = 0; if (i == 0) row = true; if (j == 0) col = true; } } } for (int i = 1; i < m; i++){ if (matrix[i][0] == 0){ for (int j = 1; j < n;j++) matrix[i][j] = 0; } } for (int j = 1; j < n; j++){ if (matrix[0][j] == 0){ for (int i = 1; i < m; i++) matrix[i][j] = 0; } } if (row){ for (int j = 0; j < n; j++) matrix[0][j] = 0; } if (col){ for(int i = 0; i < m; i++) matrix[i][0] = 0; } //too slow public void setZeros(int[][] matrix){ int rows = matrix.length; int cols = matrix[0].length; Set<Integer> a = new HashSet<Integer>(); Set<Integer> b = new HashSet<Integer>(); for(int i = 0;i<rows;i++){ for(int j = 0;j<cols;j++){ if (matrix[i][j]==0){ a.add(i); b.add(j); } } } for(int i = 0;i<rows;i++){ for(int j = 0;j<cols;j++) { if(a.contains(i)){ matrix[i][j] = 0; } if(b.contains(j)){ matrix[i][j] = 0; } } } }
相关文章推荐
- LeetCode No.73 Set Matrix Zeroes
- Leetcode NO.73 Set Matrix Zeroes
- LeetCode 79 Set Matrix Zeroes
- [LeetCode73]Set Matrix Zeroes
- LeetCode 之 Set Matrix Zeroes
- Set Matrix Zeroes - LeetCode 73
- LeetCode: Set Matrix Zeroes
- leetcode JAVA Set Matrix Zeroes 难度系数3 3.24
- Leetcode Set Matrix Zeroes
- 【LeetCode-面试算法经典-Java实现】【070-Set Matrix Zeroes(矩阵置零)】
- LeetCode - Set Matrix Zeroes
- leetcode Set Matrix Zeroes
- Leetcode: Set Matrix Zeroes
- 73 leetcode - Set Matrix Zeroes
- LeetCode刷题笔录Set Matrix Zeroes
- leetcode: Set Matrix Zeroes
- LeetCode_OJ【73】Set Matrix Zeroes
- [LeetCode] Set Matrix Zeroes
- [leetcode]Set Matrix Zeroes
- 【leetcode】第73题 Set Matrix Zeroes 题目+解析+JAVA代码