题解 | #蛇形矩阵#JavaScript解答

蛇形矩阵

http://www.nowcoder.com/questionTerminal/353e6ac8725341968273fead86448751

对于将蛇形矩阵主要是提前设好四个边界,四个边界不断的缩小,最后缩到矩阵的中心。

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void (async function () {
    // Write your code here
    while ((line = await readline())) {
        let n = parseInt(line);
        let num = 1;
        let left = 0;
        let top = 0;
        let right = n - 1;
        let bottom = n - 1;
        let result = new Array(n).fill(0).map(() => new Array(n).fill(0));
        let target = n * n;

        while (target >= num) {
            for (let i = left; i <= right; i++) {
                result[top][i] = num++;
            }
            top++;

            for (let i = top; i <= bottom; i++) {
                result[i][right] = num++;
            }
            right--;

            for (let i = right; i >= left; i--) {
                result[bottom][i] = num++;
            }
            bottom--;

            for (let i = bottom; i >= top; i--) {
                result[i][left] = num++;
            }
            left++;
        }
        let res = [];
        result.forEach(item => {
            res = [...res,...item]
        })
        console.log(...res)
    }
})();
全部评论

相关推荐

05-30 12:03
山西大学 C++
offer来了我跪着...:不是骗子,等到测评那一步就知道为啥这么高工资了
点赞 评论 收藏
分享
06-23 11:28
门头沟学院 Java
牛客91966197...:也有可能是点拒绝的时候自动弹的话术
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务