1、题目来源
73. 矩阵置零 – 力扣(LeetCode)
2、题目描述
给定一个m x n
的矩阵,如果一个元素为0,则将其所在行和列的所有元素都设为0。请使用原地算法。
示例 1:
输入:matrix = [[1,1,1],[1,0,1],[1,1,1]] 输出:[[1,0,1],[0,0,0],[1,0,1]]
示例 2:
输入:matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]] 输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]
提示:
m == matrix.length
n == matrix[0].length
1
-231
进阶:
- 一个直观的解决方案是使用
O(mn)
的额外空间,但这并不是一个好的解决方案。 - 一个简单的改进方案是使用
O(m+服务器托管网n)
的额外空间,但这仍然不是最好的解决方案。 - 你能想出一个仅使用常量空间的解决方案吗?
3、题解分享
// 方法一
class Solution {
public void setZeroes(int[][] matrix) {
// 思路:使用标记数组 + 定义两个数组,用来标记某行或者某列是否包含0
int n = matrix.length;
int m = matrix[0].length;
boolean[] rowVis = new boolean[n];
boolean[] colVis = new boolean[m];
服务器托管网 for(int i = 0;i
//方法二
class Solution {
public void setZeroes(int[][] matrix) {
// 思路:使用两个标记变量 + 实际上就是把标记数组换成matrix数组的第一行和第一列
int n = matrix.length;
int m = matrix[0].length;
boolean row0 = false;
boolean col0 = false;
for(int j = 0;j
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: Opencv3.2 ubuntu20.04安装过程
##1、更新源 sudo add-apt-repository “deb http://security.ubuntu.com/ubuntu xenial-security main” sudo apt update ##2、安装依赖库 sudo apt-ge…