题解 | #顺时针打印矩阵#

顺时针打印矩阵

https://www.nowcoder.com/practice/9b4c81a02cd34f76be2659fa0d54342a

function printMatrix(matrix) {
    let res = [];
    if (!matrix.length) return res;
    // 定义上下左右边界
    let left = 0;
    let right = matrix[0].length - 1;
    let up = 0;
    let down = matrix.length - 1;
    while (left <= right && up <= down) {
        // 上边界从左到右加入到结果数组中
        for (let i = left; i <= right; i++) {
            res.push(matrix[up][i]);
        }
        // 上边界下移
        up++;
        if(up > down){
            break;
        }
        // 右边界从上向下加入结果
        for(let i = up; i <= down; i++){
            res.push(matrix[i][right]);
        }
        // 右边界左移
        right--;
        if(left > right){
            break;
        }
        // 下边界从右向左加入
        for(let i = right; i >= left; i--){
            res.push(matrix[down][i]);
        }
        // 下边界上移
        down--;
        if(up > down){
            break;
        }
        // 左边界从下向上加入
        for(let i = down; i >= up; i--){
            res.push(matrix[i][left]);
        }
        left++;
        if(left > right){
            break;
        }
    }
    return res;
}
module.exports = {
    printMatrix: printMatrix,
};

全部评论

相关推荐

不愿透露姓名的神秘牛友
04-22 18:57
点赞 评论 收藏
分享
vip牛牛:测试吧,开发现在至少212
点赞 评论 收藏
分享
头像
03-29 15:34
门头沟学院 Java
北斗导航Compass低仿版:能不能先搞清楚优先级啊,怎么可能是项目问题,项目很重要吗?又没学历 又没实习大厂凭啥约面?那玩具项目 没应用在真实生产环境下的 就算做上天又有什么用?早点找个小公司实习 拿小公司实习去投大厂实习,这才是你现在该做的
投递美团等公司7个岗位 简历被挂麻了,求建议
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务