【前端面试】清除二维数组中元素为0所在的行和列

来源:互联网 发布:什么软件做假章 编辑:程序博客网 时间:2024/06/15 18:52

面试的时候经常会遇到这样一个面试题:

有一个二维数组如下:[    [1,1,3,8],    [0,2,5,6],    [3,1,0,4],    [5,8,2,7]]需要将包含0的行和列变为0.请输出返回的数组。

使用js实现代码如下:

function clearZero(arr){  var row = arr.length;  var col = arr[0].length;  var rowIndex = [];  var colIndex = [];  for (var i = 0; i < row; i++) {    for (var j = 0; j < col; j++) {      if (arr[i][j] == 0) {        if (rowIndex.indexOf(i) == -1) {rowIndex.push(i)}        if (colIndex.indexOf(j) == -1) {colIndex.push(j)}      }    }  }  for (var i = 0; i < row; i++) {    for (var j = 0; j < col; j++) {      if (rowIndex.indexOf(i) !== -1 || colIndex.indexOf(j) !== -1) {        arr[i][j] = 0      }    }  }  return arr;}

暂时没有想到复杂度更低的方法.

阅读全文
0 0