问题描述
如果矩阵中的某个元素为0,则将其所在行和列清零
例如:
输出:
算法思路
这是一道考察数组下标的算法,有个小坑是:如果采用遇到一个零处理一个的方式,即在原数组上遇到一个零就把其对应的行和列元素变为零,则会把整个数组都变为0。
因为这是一个循环的过程,本来原数组中不为0的元素被消为0,产生错误,在数组中有0的情况下,整个数组都会被消为0。
所以采用新的数组来记录原数组中0元素的下标,用两个一维数组(分别长度为M、N)来替代一个M X N的二维数组,节省空间。
代码实现
public class _02_0所在的行列清零 {
public static void main(String[] args) {
int[][] matrix = {
{1,2,0,4},
{5,6,7,8},
{9,0,11,12},
{13,14,15,16}
};
solve(matrix);
}
public static void sol