您的位置:首页 > 职场人生

面试:数组:矩阵清零

2016-05-20 16:26 393 查看

题目

给定一个矩阵,若某元素为0,则将该元素的行和列清零

算法

找到第一个0元素,使用该元素的行来记录需要清零的列,该元素的列记录需要清零的行

再扫描,一次清零

import java.util.*;

public  class Solution{
public void setZeroes(int[][] matrix){
int m=matrix.length;
int n=matrix[0].length;
int x=-1,y=-1;
for(int i=0;i<m;i++){
for(int j=0;j<n;j++)
if(matrix[i][j]==0){
if(x==-1 && y==-1){
//找到第一个0元素
x=i;
y=j;
}else{
matrix[x][j]=0;
matrix[i][y]=0;
}
}
}

//如果找不到0,直接返回
if(x==-1||y==-1)
return;
for(int i=0;i<m;i++)
for(int j=0;j<n;j++){
if(matrix[x][j]==0||matrix[i][y]==0)
//清零
matrix[i][j]=0;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: