美文网首页
JavaScript - 顺时针打印数组

JavaScript - 顺时针打印数组

作者: ElricTang | 来源:发表于2019-10-24 18:27 被阅读0次

顺时针打印一个M*N的矩阵,起始为1。
例子:
m = 6 ,n = 5
[ [ 1, 2, 3, 4, 5 ],
[ 18, 19, 20, 21, 6 ],
[ 17, 28, 29, 22, 7 ],
[ 16, 27, 30, 23, 8 ],
[ 15, 26, 25, 24, 9 ],
[ 14, 13, 12, 11, 10 ] ]

function spiralArray(row,col){

    // m:圈数 count:叠加值 arr:结果数组
    let m = 0;
    let count = 1;
    let arr = [];

    // 初始化数组
    for(let i = 0;i < row;i++){
        arr[i] = [];
        for(let j = 0;j < col;j++){
            arr[i][j] = 0;
        }
    }


    while(true){

        // 向右赋值
        for(let a = m;a < col-m;a++){
            arr[m][a] = count++;
        }

        // 向下赋值
        for(let b = m;b < row-m-1;b++){
            arr[b+1][col-m-1] = count++;
        }

        // 向左赋值
        for(let c = m;c < col-m-1;c++){
            arr[row-m-1][col-1-(c+1)] = count++;
        }

        // 向上赋值
        for(let d = m;d < row-m-2;d++){
            arr[row-(d+1)-1][m] = count++;
        }

        // 每一圈赋值完后,圈数+1
        m++;

        // 如果自增值大于矩阵值数量,结束循环
        if(count > row*col){
            break
        }

    }

    return arr;
}

console.log(spiralArray(6,5));
  • 核心在于圈数变量,一圈一圈赋值很好理解。
  • 需要注意的是循环的边界以及退出循环的条件。

相关文章

  • JavaScript - 顺时针打印数组

    顺时针打印一个M*N的矩阵,起始为1。例子:m = 6 ,n = 5[ [ 1, 2, 3, 4, 5 ],[ 1...

  • 《剑指offer》(十九)-顺时针打印矩阵(java)

    顺时针打印矩阵 考点:数组 题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入...

  • 【python】二维数组的旋转遍历?

    题目:假定有一个二维数组,要求将数组中的元素以顺时针的旋转方式打印出来。实现一个函数,使得数组的元素能按照顺时针方...

  • 顺时针打印数组

    之前面试的时候这样一道算法:给你一个正整数N,且N > 0,得到一个从1到N*N大小的数组,按照顺时针打印它eg:...

  • 顺时针打印矩阵

    按照顺时针的顺序打印一个二维数组每次打印之前我们要记录开始的startX,endX,startY,endY;每次打...

  • 算法-数组(二)

    数组系列的第二篇文章。 调整数组顺序,使奇数位于偶数前面 顺时针打印矩阵 查找数组中出现次数大于一半的数字 1.调...

  • 左程云-数组问题

    1、打印转圈数组 思路:按圈打印,并判断圈的四条边是否存在 2、将正方形矩阵顺时针转动90度 思路:不同于书中的做...

  • 算法-29.顺时针打印矩阵

    输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。思路:与前面打印回环数组的算法类似。即定义方向,通过...

  • 剑指offer——顺时针打印矩阵

    剑指offer——顺时针打印矩阵 题目描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,...

  • 【不熟练】知识迁移能力-顺时针打印矩阵

    顺时针打印矩阵 题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: ...

网友评论

      本文标题:JavaScript - 顺时针打印数组

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