美文网首页
顺时针打印矩阵

顺时针打印矩阵

作者: 我的天气很好啦 | 来源:发表于2018-10-16 00:30 被阅读0次

    时间 2018-10-13
    🍞环境:牛客的编译环境
    🍰语言:JavaScript
    ☕️难点:实现顺时针..真的想了好久没想出来
    🍊题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.
    🍎思路:当我们拿到一个矩阵的时候,把第一行存到输出结果里,第一行遍历过之后,将矩阵逆时针旋转90°,然后再把第一行存到输出结果中,遍历之后再旋转...
    🍇代码:

    
    function turn(arr){
        var newArr = [],
            row = arr.length;
        if(arr.length > 0)
            var col = arr[0].length;
        for(var i = col - 1; i >= 0; i--){
            var rowarr = [];
            for(var j = 0; j < row; j++){
                rowarr.push(arr[j][i]);
            }
            newArr.push(rowarr);
        }
        return newArr;
    }
    function printMatrix(matrix)
    {
        // write code here
        var arr = [];
        while(matrix.length != 0){
            var col = matrix[0].length,
                tmp = [];
            for(var i = 0; i < col; i++){
                tmp.push(matrix[0].pop());
            }
            matrix.splice(0,1);
            arr = arr.concat(tmp.reverse());
            matrix = turn(matrix);
        }
        return arr;
    }
    

    相关文章

      网友评论

          本文标题:顺时针打印矩阵

          本文链接:https://www.haomeiwen.com/subject/ujcczftx.html