LeetCode 73. Set Matrix Zeroes(矩阵清零)
来源:互联网 发布:淘宝水弹枪合法吗 编辑:程序博客网 时间:2024/06/05 03:18
原题网址:https://leetcode.com/problems/set-matrix-zeroes/
Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place.
click to show follow up.
Follow up:
Did you use extra space?
A straight forward solution using O(mn) space is probably a bad idea.
A simple improvement uses O(m + n) space, but still not the best solution.
Could you devise a constant space solution?
方法一:使用行和列哈希。
public class Solution { public void setZeroes(int[][] matrix) { boolean[] row = new boolean[matrix.length]; boolean[] col = new boolean[matrix[0].length]; for(int i=0; i<matrix.length; i++) { for(int j=0; j<matrix[i].length; j++) { if (matrix[i][j]==0) { row[i] = true; col[j] = true; } } } for(int i=0; i<matrix.length; i++) { if (row[i]) { for(int j=0; j<matrix[i].length; j++) matrix[i][j] = 0; } } for(int j=0; j<matrix[0].length; j++) { if (col[j]) { for(int i=0; i<matrix.length; i++) matrix[i][j] = 0; } } }}
方法二:将哈希映射到第一行和第一列,注意顺序问题。
public class Solution { public void setZeroes(int[][] matrix) { boolean top = false; for(int j=0; j<matrix[0].length; j++) { if (matrix[0][j] == 0) { top = true; break; } } boolean left = false; for(int i=0; i<matrix.length; i++) { if (matrix[i][0] == 0) { left = true; break; } } for(int i=1; i<matrix.length; i++) { for(int j=1; j<matrix[i].length; j++) { if (matrix[i][j] == 0) { matrix[i][0] = 0; matrix[0][j] = 0; } } } for(int i=1; i<matrix.length; i++) { for(int j=1; j<matrix[i].length; j++) { if (matrix[i][0] == 0 || matrix[0][j] == 0) matrix[i][j] = 0; } } if (top) Arrays.fill(matrix[0], 0); if (left) { for(int i=0; i<matrix.length; i++) matrix[i][0] = 0; } }}
0 0
- LeetCode 73. Set Matrix Zeroes(矩阵清零)
- LeetCode | Set Matrix Zeroes(矩阵相应行列清零)
- Leetcode 73. Set Matrix Zeroes 矩阵置零 解题报告
- leetcode 73. Set Matrix Zeroes-矩阵置零|数组
- LeetCode-73. Set Matrix Zeroes (JAVA) 矩阵元素置0
- leetcode Set Matrix Zeroes矩阵设置零
- [LeetCode]73.Set Matrix Zeroes
- LeetCode --- 73. Set Matrix Zeroes
- [Leetcode] 73. Set Matrix Zeroes
- [leetcode] 73.Set Matrix Zeroes
- 【leetcode】73. Set Matrix Zeroes
- [leetcode] 73. Set Matrix Zeroes
- Leetcode 73. Set Matrix Zeroes
- LeetCode 73. Set Matrix Zeroes
- LeetCode 73. Set Matrix Zeroes
- 73. Set Matrix Zeroes LeetCode
- [LeetCode]73. Set Matrix Zeroes
- [LeetCode]73. Set Matrix Zeroes
- equal_range用法
- 浅谈多线程中GCD(有图有真相) iOS中如何实现多线程同步
- 303. Range Sum Query - Immutable
- notepad++正则匹配及匹配内容的保留与处理
- python sorted
- LeetCode 73. Set Matrix Zeroes(矩阵清零)
- Notepad++正则表达式中几点需要注意的地方
- 全局eval的实现
- mathematica试除法解素数问题
- windows程序设计POPPAD3的关键难点详解(四)
- leetcode #21 in cpp
- LeetCode 74. Search a 2D Matrix(搜索矩阵)
- LeetCode 75. Sort Colors(颜色排序)
- LeetCode 76. Minimum Window Substring(最小窗口子串)