欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > 2025年- H17-Lc125-73.矩阵置零(矩阵)---java版

2025年- H17-Lc125-73.矩阵置零(矩阵)---java版

2025/5/5 20:42:56 来源:https://blog.csdn.net/zsysingapore/article/details/147656474  浏览:    关键词:2025年- H17-Lc125-73.矩阵置零(矩阵)---java版

1.题目描述

在这里插入图片描述
在这里插入图片描述

2.思路

(1)计算矩阵的行数

(2)计算矩阵的列数

(3)设计一个行列的bool数组

(4)遍历矩阵(二维数组),如果遇到元素0,则把元素0所在的行和列全都置为true

(5)再次遍历矩阵(二维数组),如果行数组为true把行数组置为0,如果列数组为true把列数组置为0.
注意点:
在这里插入图片描述

在这里插入图片描述

3.代码实现

public class H73 {public void setZeroes(int[][] matrix) {//1.计算矩阵的行数int m=matrix.length;//2.计算矩阵的列数int n=matrix[0].length;//3.设计一个行列的bool数组,boolean 是基本类型,默认值就是 false,不需要额外初始化。//Java 中数组初始化默认值为 null,而不是 false。//如果声明用Boolean,使用 row[i] == true 的时候,如果 row[i] 没被赋值过,就会变成 null == true,会抛出 NullPointerException。boolean[] row=new boolean[m];boolean[] col=new boolean[n];//4.遍历矩阵(二维数组),如果遇到元素0,则把元素0所在的行和列全都置为truefor(int i=0;i<m;i++){for(int j=0;j<n;j++){if(matrix[i][j]==0){row[i]=true;col[j]=true;}}}//5.再次遍历矩阵(二维数组),如果行数组为true把行数组置为0,如果列数组为true把列数组置为0.也就是把矩阵中的行列置为true的置为0for(int i=0;i<m;i++){for(int j=0;j<n;j++){if(row[i]==true||col[j]==true){matrix[i][j]=0;}}}}public static void main(String[] args){H73 test08=new H73();int[][] matrix={{1,1,1},{1,0,1},{1,1,1}};test08.setZeroes(matrix);for(int[] row:matrix)//先遍历一维数组,行数组{for(int value:row)//再遍历列数组{System.out.print(value+" ");}System.out.println();}}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词