用js刷剑指offer(顺时针打印数组)

题目描述

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下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.

牛客网链接

js代码

function printMatrix(matrix)
{
    // write code here
    if (!matrix) return
    let res = []
    while(JSON.stringify(matrix) !== '[]'){
        temp = matrix.shift()
        res = res.concat(temp)
        if (JSON.stringify(matrix) === '[]') break
        matrix = turn(matrix)
    }
    return res
}
function turn(matrix){
    let len_r = matrix.length
    let len_c = matrix[0].length-1
    const new_matrix = []
    for (len_c; len_c >= 0; len_c--){
        let temp = []
        for (let j = 0; j < len_r; j++){
            temp.push(matrix[j][len_c]) 
        }
        new_matrix.push(temp)
    }
    return new_matrix
}
posted @ 2019-10-09 14:24  1Shuan  阅读(216)  评论(0编辑  收藏  举报