首页 > 代码库 > 将矩阵中为0的元素所在行列清零
将矩阵中为0的元素所在行列清零
public class setZero { static void print(int [][]a){ for(int i=0;i<a.length;i++){ for(int j=0;j<a[i].length;j++){ System.out.print(a[i][j]+" "); } System.out.println(); } } /*static void SetZero(int [][]a, int i, int j){ for(int k=0; k<a.length;k++){ a[i][k]=0; } for(int k=0; k<a[i].length;k++){ a[k][j]=0; } }*/ public static void main(String[] args) { int [][]a={ {1,2,3}, {4,0,5}, {6,7,8}}; //方法1,用数组标记零元素的位置,空间复杂度O(MN) /*int [][]b = new int[3][3];*/ //方法2,用两个数组分别标记零元素的行和列 boolean []row=new boolean[a.length]; boolean []col=new boolean[a[0].length]; print(a); for(int i=0;i<a.length;i++){ for(int j=0; j<a[i].length; j++){ if(a[i][j]==0){ /*b[i][j]=1;*/ row[i]=true; col[j]=true; } } } /*for(int i=0;i<b.length;i++){ for(int j=0;j<b[i].length;j++){ if(b[i][j]==1){ SetZero(a,i,j); } } }*/ for(int i=0;i<a.length;i++){ for(int j=0;j<a[i].length;j++){ if(row[i] || col[j]){ a[i][j]=0; } } } print(a); } } /*output example 1 2 3 4 0 5 6 7 8 1 0 3 0 0 0 6 0 8 */
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。