JavaScript--面试--算法--数组-1

描述:

     编写一个算法,若M*N矩阵中的某个元素为0,则将其所在的行与列清零;

function metrix_checker(arr) {
    if(!arr.length || arr.length == 0) throw new Error("arr should be a array");
    var lows=[];
    var colums=[];
    for(var i=0; i<arr.length; i++) {
        if(!arr[i].length) throw new Error("arr should be two-dimensional array");
        for(var j=0; j<arr[i].length; j++){
            if(arr[i][j] == 0) {
                lows.push(i);
                colums.push(j);
            }
        }
    }
    var low = lows.pop();
    while(low) {
        arr[low].fill(0);
        low = lows.pop();
    }
    var colum = colums.pop();
    while(colum){
        for(var i=0; i<arr.length; i++){
            arr[i][colum] = 0;
        }
        colum = colums.pop();
    }
    return arr;
} 

var matrix = [[1,2,3],[3,4,5],[6,0,8]];
console.log(metrix_checker(matrix).join(','));

 

posted on 2016-03-28 23:01  可乐不加冰Litb  阅读(119)  评论(0)    收藏  举报